นี่คือBar#do_things
:
class Bar
def do_things
Foo.some_method(x) do |x|
y = x.do_something
return y_is_bad if y.bad? # how do i tell it to stop and return do_things?
y.do_something_else
end
keep_doing_more_things
end
end
และนี่คือFoo#some_method
:
class Foo
def self.some_method(targets, &block)
targets.each do |target|
begin
r = yield(target)
rescue
failed << target
end
end
end
end
ฉันคิดว่าเกี่ยวกับการใช้เพิ่มขึ้น แต่ฉันพยายามที่จะทำให้มันทั่วไปดังนั้นผมจึงไม่ต้องการที่จะนำอะไรที่เฉพาะเจาะจงใด ๆ Foo
ใน