Skip to content

Instantly share code, notes, and snippets.

@avsej
Created July 24, 2013 12:55
Show Gist options
  • Save avsej/6070321 to your computer and use it in GitHub Desktop.
Save avsej/6070321 to your computer and use it in GitHub Desktop.
class Runner
def run(&block)
begin
instance_exec(&block)
@on_success.call if @on_success
rescue Exception => ex
@on_failure.call(ex) if @on_failure
end
end
def on_success(&block)
@on_success = block
end
def on_failure(&block)
@on_failure = block
end
end
obj = Runner.new
obj.run do
on_success do
puts "on success"
end
on_failure do |ex|
puts "on failure #{ex.inspect}"
end
raise
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment