Module: ToReference::ClassMethods

Defined in:
lib/to_reference.rb

Instance Method Summary collapse

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