callables/forwarded_block_scope_no_parens.rb
tests/_examples/callables/forwarded_block_scope_no_parens.rb in the metorex repository.
class Walker
def each_item &block
[1, 2].each(&block)
end
def each_pair_of &block
{ a: 1 }.each_pair(&block)
end
end
module Shipping
RATE = 4
class Entry
def initialize value
@value = value
end
def to_s = "entry #{@value}"
end
def self.collect
found = []
Walker.new.each_item { |item| found << Entry.new(item * RATE).to_s }
Walker.new.each_pair_of { |key, value| found << "#{key} #{value + RATE}" }
found
end
end
p Shipping.collect
Output:
["entry 4", "entry 8", "a 5"]