Module: Artoo::Delegator

Defined in:
lib/artoo/delegator.rb

Overview

Artoo delegation mixin that acts like Sinatra. Mixing this module into an object causes all methods to be delegated to the Artoo::MainRobot class. Used primarily at the top-level.

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.targetObject

Returns the value of attribute target.



26
27
28
# File 'lib/artoo/delegator.rb', line 26

def target
  @target
end

Class Method Details

.delegate(*methods) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/artoo/delegator.rb', line 13

def self.delegate(*methods)
  methods.each do |method_name|
    define_method(method_name) do |*args, &block|
      return super(*args, &block) if respond_to? method_name
      Delegator.target.send(method_name, *args, &block)
    end
    private method_name
  end
end