Skip to content

Instantly share code, notes, and snippets.

@copiousfreetime
Created October 27, 2010 22:51
Show Gist options
  • Save copiousfreetime/650193 to your computer and use it in GitHub Desktop.
Save copiousfreetime/650193 to your computer and use it in GitHub Desktop.
class A
def implicit_block_implicit_ensure
begin
"block"
ensure
"ensure"
end
end
def implicit_block_explicit_ensure
begin
"block"
ensure
return "ensure"
end
end
def explicit_block_implicit_ensure
begin
return "block"
ensure
"ensure"
end
end
def explicit_block_explicit_ensure
begin
return "block"
ensure
return "ensure"
end
end
def empty_block_implicit_ensure
begin
ensure
"ensure"
end
end
end
methods = A.new.methods - Object.new.methods
methods.sort.each do |m|
a = A.new
puts "#{m} -> #{a.send( m ).inspect}"
end
@will
Copy link

will commented Oct 27, 2010

for the lazy (on 1.8.7)

empty_block_implicit_ensure -> nil
explicit_block_explicit_ensure -> "ensure"
explicit_block_implicit_ensure -> "block"
implicit_block_explicit_ensure -> "ensure"
implicit_block_implicit_ensure -> "block"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment