methods/anonymous_block_parameter.rb
tests/_examples/methods/anonymous_block_parameter.rb in the metorex repository.
def run_it(&block)
block.call
end
def forwards(&)
run_it(&)
end
def forwards_with_arguments(label, &)
"#{label}: #{run_it(&)}"
end
class Relay
def deliver(&)
collect(&)
end
def collect(&block)
block.call * 2
end
end
puts forwards { "plain" }
puts forwards_with_arguments("labeled") { "value" }
puts Relay.new.deliver { 21 }
Output:
plain
labeled: value
42