Proc.new inside a method
Typically, you see blocks passed with yield:
def foo
  yield
end
foo { 1 + 1 }
=> 2or with the explicit to proc (&block ) at the end of your method arguments:
def foo(&block)
  block.call
end
foo { 1 + 1 }
=> 2Proc.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