# File lib/rr/injections/method_missing_injection.rb, line 5 5: def create(subject) 6: instances[subject] ||= begin 7: new(subject).bind 8: end 9: end
# File lib/rr/injections/method_missing_injection.rb, line 21
21: def bind
22: unless subject.respond_to?(original_method_alias_name)
23: unless subject.respond_to?(:method_missing)
24: @placeholder_method_defined = true
25: subject_class.class_eval do
26: def method_missing(method_name, *args, &block)
27: super
28: end
29: end
30: end
31: subject_class.__send__(:alias_method, original_method_alias_name, :method_missing)
32: bind_method
33: end
34: self
35: end
# File lib/rr/injections/method_missing_injection.rb, line 51
51: def dispatch_method(method_name, args, block)
52: MethodDispatches::MethodMissingDispatch.new(subject, method_name, args, block).call
53: end
# File lib/rr/injections/method_missing_injection.rb, line 26
26: def method_missing(method_name, *args, &block)
27: super
28: end
# File lib/rr/injections/method_missing_injection.rb, line 37
37: def reset
38: if subject_has_method_defined?(original_method_alias_name)
39: memoized_original_method_alias_name = original_method_alias_name
40: placeholder_method_defined = @placeholder_method_defined
41: subject_class.class_eval do
42: remove_method :method_missing
43: unless placeholder_method_defined
44: alias_method :method_missing, memoized_original_method_alias_name
45: end
46: remove_method memoized_original_method_alias_name
47: end
48: end
49: end
# File lib/rr/injections/method_missing_injection.rb, line 60
60: def bind_method
61: returns_method = def method_missing(method_name, *args, &block) RR::Injections::MethodMissingInjection.create(self).dispatch_method(method_name, args, block) end
62: subject_class.class_eval(returns_method, __FILE__, __LINE__ - 4)
63: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.