I know I know its a feature not a bug! Now run away you stupid ruby fanbois!


def zork(up)
puts 'foo'
up.call(42)
puts 'bar'
end
up = Proc.new do |n|
return if n == 42
puts 'foo'
end
zork(up)
#>>> foo
#>>> ... unexpected return (LocalJumpError)

def zork
puts 'foo'
up = Proc.new do |n|
return if n == 42
puts 'foo'
end
bla = up.call(42)
puts 'bar'
end
zork
puts "baz"
#>>> foo
#>>> baz

def zork
puts 'foo'
up = lambda do |n|
return if n == 42
puts 'foo'
end
bla = up.call(42)
puts 'bar'
end
zork
puts "baz"
#>>> foo
#>>> bar
#>>> baz

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/PSeA9YDC-MU/10653