Class: Delorean::BaseModule::NodeCall
- Inherits:
-
Struct
- Object
- Struct
- Delorean::BaseModule::NodeCall
- Defined in:
- lib/delorean/base.rb
Overview
_e is used by Marty promise_jobs to pass promise-related information
Instance Attribute Summary collapse
-
#_e ⇒ Object
Returns the value of attribute _e.
-
#engine ⇒ Object
Returns the value of attribute engine.
-
#node ⇒ Object
Returns the value of attribute node.
-
#params ⇒ Object
Returns the value of attribute params.
Instance Method Summary collapse
-
#%(args) ⇒ Object
FIXME: % should also support string as args.
-
#+(args) ⇒ Object
add new arguments, results in a new NodeCall.
- #/(args) ⇒ Object
- #cloned_params ⇒ Object
- #evaluate(attr) ⇒ Object
Instance Attribute Details
#_e ⇒ Object
Returns the value of attribute _e
19 20 21 |
# File 'lib/delorean/base.rb', line 19 def _e @_e end |
#engine ⇒ Object
Returns the value of attribute engine
19 20 21 |
# File 'lib/delorean/base.rb', line 19 def engine @engine end |
#node ⇒ Object
Returns the value of attribute node
19 20 21 |
# File 'lib/delorean/base.rb', line 19 def node @node end |
#params ⇒ Object
Returns the value of attribute params
19 20 21 |
# File 'lib/delorean/base.rb', line 19 def params @params end |
Instance Method Details
#%(args) ⇒ Object
FIXME: % should also support string as args
48 49 50 51 52 |
# File 'lib/delorean/base.rb', line 48 def %(args) raise "non-array arg to %" unless args.is_a?(Array) engine.eval_to_hash(node, args, cloned_params) end |
#+(args) ⇒ Object
add new arguments, results in a new NodeCall
55 56 57 58 59 |
# File 'lib/delorean/base.rb', line 55 def +(args) raise "bad arg to %" unless args.is_a?(Hash) NodeCall.new(_e, engine, node, params.merge(args)) end |
#/(args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/delorean/base.rb', line 32 def /(args) begin case args when Array engine.eval_to_hash(node, args, cloned_params) when String self.evaluate(args) else raise "non-array/string arg to /" end rescue => exc Delorean::Engine.grok_runtime_exception(exc) end end |
#cloned_params ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/delorean/base.rb', line 20 def cloned_params # FIXME: evaluate() modifies params! => need to clone it. # This is pretty awful. NOTE: can't sanitize params as Marty # patches NodeCall and modifies params to send _parent_id. # This whole thing needs to be redone. @cp ||= Hash[params] end |
#evaluate(attr) ⇒ Object
28 29 30 |
# File 'lib/delorean/base.rb', line 28 def evaluate(attr) engine.evaluate(node, attr, cloned_params) end |