Proc.new inside a method
Typically, you see blocks passed with yield:
def foo
yield
end
foo { 1 + 1 }
=> 2
or with the explicit to proc (&block ) at the end of your method arguments:
def foo(&block)
block.call
end
foo { 1 + 1 }
=> 2
Proc.new can be called without a block within a method and it will capture an attached block
def foo
Proc.new.call
end
foo { 1 + 1 }
=> 2
Tweet