यहाँ है 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।