Module: Eco::Language::Delegation::DelegatingMissing

Included in:
Data::CountTrace
Defined in:
lib/eco/language/delegation/delegating_missing.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, **kargs, &block) ⇒ Object (private)

Note:

if missing, redirect all parameters to receiver, as long as responds_to method_name



90
91
92
93
94
95
96
97
98
99
100
# File 'lib/eco/language/delegation/delegating_missing.rb', line 90

def method_missing(method_name, *args, **kargs, &block)
  return super unless self.class.delegating_missing?(method_name)

  target = self.class.delegating_missing_target(self, at: method_name)

  if method_name.to_s.start_with?('@')
    target.instance_variable_get(method_name)
  else
    target.send(method_name, *args, **kargs, &block)
  end
end

Class Method Details

.included(base) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/eco/language/delegation/delegating_missing.rb', line 6

def included(base)
  super

  base.extend Eco::Language::Klass::InheritableClassVars
  base.extend ClassMethods
  base.inheritable_class_vars :_delegating_missing, :delegating_missing_to
end

Instance Method Details

#respond_to_missing?(method_name, include_private = false) ⇒ Boolean

INSTANCE Methods

Returns:

  • (Boolean)


82
83
84
# File 'lib/eco/language/delegation/delegating_missing.rb', line 82

def respond_to_missing?(method_name, include_private = false)
  super
end