metaprogramming/define_method_from_callable_no_parens.rb
tests/_examples/metaprogramming/define_method_from_callable_no_parens.rb in the metorex repository.
borrowed = Class.new do
def test_method first, second
[first, second]
end
define_method :another_test_method, instance_method(:test_method)
end
puts borrowed.new.another_test_method(1, 2).inspect
parent = Class.new { define_method(:foo) { :bar } }
child = Class.new parent do
define_method :baz, parent.instance_method(:foo)
end
puts child.new.baz.inspect
helpers = Module.new do
def from_module
:module_method
end
end
holder = Class.new do
define_method :borrowed, helpers.instance_method(:from_module)
end
puts holder.new.borrowed.inspect
adder = Class.new do
define_method :add, :+.to_proc
end
puts adder.new.add(1, 2).inspect
returned = nil
Class.new do
returned = define_method :named do
:ok
end
end
puts returned.inspect
Output:
[1, 2]
:bar
:module_method
3
:named