Module: ToReference::ClassMethods
- Defined in:
- lib/to_reference.rb
Instance Method Summary collapse
- #get_dup_method(method) ⇒ Object
- #redefine_method(method, i_method, &block) ⇒ Object
- #reference(*methods) ⇒ Object
- #remove_possible_method(method) ⇒ Object
Instance Method Details
#get_dup_method(method) ⇒ Object
37 38 39 |
# File 'lib/to_reference.rb', line 37 def get_dup_method(method) (method.to_s + rand.to_s).gsub(".","").to_sym end |
#redefine_method(method, i_method, &block) ⇒ Object
32 33 34 35 |
# File 'lib/to_reference.rb', line 32 def redefine_method(method, i_method, &block) remove_possible_method(method) i_method ? define_method(method, &block) : define_singleton_method(method, &block) end |
#reference(*methods) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/to_reference.rb', line 23 def reference(*methods) methods.each do |method| dup_method = get_dup_method(method) i_method = self.instance_methods.include?(method) defining_method(dup_method, method, i_method) redefine_method(method, i_method) { |*params| method(dup_method) } end end |
#remove_possible_method(method) ⇒ Object
41 42 43 44 |
# File 'lib/to_reference.rb', line 41 def remove_possible_method(method) remove_method(method) rescue NameError end |