Class: Luego::Delegate

Inherits:
BasicObject
Defined in:
lib/luego/delegate.rb

Direct Known Subclasses

Future

Instance Method Summary collapse

Constructor Details

#initialize(object) ⇒ Delegate

Returns a new instance of Delegate.



3
4
5
# File 'lib/luego/delegate.rb', line 3

def initialize(object)
  @child = object
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args, &block) ⇒ Object



12
13
14
15
# File 'lib/luego/delegate.rb', line 12

def method_missing(*args, &block)
  return super if not delegating?
  send *args, &block
end

Instance Method Details

#delegate!Object



21
22
23
# File 'lib/luego/delegate.rb', line 21

def delegate!
  @delegating = true
end

#delegating?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/luego/delegate.rb', line 17

def delegating?
  !!@delegating
end

#send(*args, &block) ⇒ Object



7
8
9
10
# File 'lib/luego/delegate.rb', line 7

def send(*args, &block)
  return super if not delegating?
  @child.send *args, &block
end

#undelegate!Object



25
26
27
# File 'lib/luego/delegate.rb', line 25

def undelegate!
  @delegating = false
end