Class: ProcessWanker::Deferred
- Inherits:
-
Object
- Object
- ProcessWanker::Deferred
- Defined in:
- lib/config/config_node.rb
Overview
Deferred
there are situations where we don’t wish to evaluate all of the configuration unless necessary - for instance, we don’t want the daemon to evaluate the list of clusters in the client configuration (particularly if it involves querying the cloud).
so, we wrap blocks in Deferred objects which are transparently evaluated on-demand.
Instance Method Summary collapse
-
#initialize(deferred_container, deferred_args, deferred_block, deferred_builder) ⇒ Deferred
constructor
A new instance of Deferred.
- #method_missing(name, *args) ⇒ Object
Constructor Details
#initialize(deferred_container, deferred_args, deferred_block, deferred_builder) ⇒ Deferred
Returns a new instance of Deferred.
66 67 68 69 70 71 72 |
# File 'lib/config/config_node.rb', line 66 def initialize(deferred_container,deferred_args,deferred_block,deferred_builder) @deferred_container=deferred_container @deferred_args=deferred_args @deferred_block=deferred_block @deferred_builder=deferred_builder @deferred_object=nil end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'lib/config/config_node.rb', line 74 def method_missing(name,*args) if(!@deferred_object) @deferred_object=@deferred_builder.new.build( @deferred_container, @deferred_args, @deferred_block) end @deferred_object.send(name,*args) end |