module StrongDelegate::ClassMethods

Attributes

delegate_variable_name[R]

Public Instance Methods

def_delegate(delegate_variable_name = nil, &block) click to toggle source
# File lib/strong_delegate.rb, line 13
def def_delegate(delegate_variable_name = nil, &block)
  @delegate_variable_name = delegate_variable_name
  set_method_defines block
end
delegate_methods() click to toggle source
# File lib/strong_delegate.rb, line 22
def delegate_methods
  @delegate_methods ||= {}
end
delegate_to(delegate_variable_name) click to toggle source
# File lib/strong_delegate.rb, line 18
def delegate_to(delegate_variable_name)
  @delegate_variable_name = delegate_variable_name
end

Private Instance Methods

set_method_defines(define_proc) click to toggle source
# File lib/strong_delegate.rb, line 28
def set_method_defines(define_proc)
  obj = Object.new
  obj.singleton_class.class_eval &define_proc

  obj.singleton_methods.each do |method_name|
    m = obj.singleton_class.instance_method(method_name)
    delegate_methods[method_name] = m.parameters
  end
end