Class: ReliableMsg::Selector::Deferred

Inherits:
Object
  • Object
show all
Defined in:
lib/reliable-msg/selector.rb

Overview

:nodoc:

Direct Known Subclasses

Constant, Header

Instance Method Summary collapse

Constructor Details

#initialize(target, operation, args) ⇒ Deferred

Returns a new instance of Deferred.



49
50
51
52
53
# File 'lib/reliable-msg/selector.rb', line 49

def initialize target, operation, args
    @target = target
    @operation = operation
    @args = args
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(symbol, *args) ⇒ Object



59
60
61
62
63
64
65
66
67
# File 'lib/reliable-msg/selector.rb', line 59

def method_missing symbol, *args
    if symbol == :__evaluate__

        eval_args = @args.collect { |arg| arg.instance_of?(Deferred) ? arg.__evaluate__(*args) : arg }
        @target.__evaluate__(*args).send @operation, *eval_args
    else
        Deferred.new self, symbol, args
    end
end

Instance Method Details

#coerce(value) ⇒ Object



55
56
57
# File 'lib/reliable-msg/selector.rb', line 55

def coerce value
    [Constant.new(value), self]
end