Method: Forwarder::Meta#forward_object

Defined in:
lib/forwarder/meta.rb

#forward_objectObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/forwarder/meta.rb', line 31

def forward_object
  a = arguments
  forwardee.module_eval do
    define_method a.message do |*args, &blk|
      args = instance_exec( *args, &a.before ) if a.before?

      a.object_target( self )
        .send( a.translation( a.message ), *a.complete_args(*args), &a.lambda( blk ) ).tap do | result |
          break instance_exec( result, &a.after ) if a.after?
        end
    end
  end
  
end