oop/module_refinements_parens.rb
tests/_examples/oop/module_refinements_parens.rb in the metorex repository.
collected = []
Refiner = Module.new do
refine String do
collected << self
end
refine Array do
collected << self
end
end
Plain = Module.new do
include(Refiner)
end
puts(Refiner.refinements.length.inspect)
puts((Refiner.refinements == collected).inspect)
puts(Plain.refinements.inspect)
puts(Module.new.refinements.inspect)
ignore_all = -> * { :any }
puts(ignore_all.call(1, 2, 3).inspect)
named_rest = -> *rest { rest }
puts(named_rest.call(4, 5).inspect)
parenthesized = ->(*) { :parens }
puts(parenthesized.call(6).inspect)
Output:
2
true
[]
[]
:any
[4, 5]
:parens