class Missingly::BlockMatcher
Public Instance Methods
define(instance, method_name)
click to toggle source
# File lib/missingly/block_matcher.rb, line 3 def define(instance, method_name) klass = instance.class == Class ? instance : instance.class if instance.class == Class define_class_method(klass, method_name) else define_instance_method(klass, method_name) end end
define_class_method(klass, method_name)
click to toggle source
# File lib/missingly/block_matcher.rb, line 14 def define_class_method(klass, method_name) sub_name = "_#{method_name}_submethod" method_name_args = setup_method_name_args(method_name) klass.define_singleton_method method_name do |*the_args, &the_block| public_send(sub_name, method_name_args, *the_args, &the_block) end klass.define_singleton_method(sub_name, &method_block) end
define_instance_method(klass, method_name)
click to toggle source
# File lib/missingly/block_matcher.rb, line 24 def define_instance_method(klass, method_name) sub_name = "_#{method_name}_submethod" method_name_args = setup_method_name_args(method_name) klass._define_method method_name do |*the_args, &the_block| public_send(sub_name, method_name_args, *the_args, &the_block) end klass._define_method(sub_name, &method_block) end