Module: Roglew::BaseContextModule
- Defined in:
- lib/roglew/contexts/base.rb
Overview
classes/modules that include BaseContextModule must implement methods :bind and :unbind
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#obj ⇒ Object
readonly
Returns the value of attribute obj.
Class Method Summary collapse
Instance Method Summary collapse
- #context ⇒ Object
- #deferred? ⇒ Boolean
- #immediate? ⇒ Boolean
- #initialize(obj, deferred, &block) ⇒ Object
Instance Attribute Details
#obj ⇒ Object (readonly)
Returns the value of attribute obj.
16 17 18 |
# File 'lib/roglew/contexts/base.rb', line 16 def obj @obj end |
Class Method Details
.included(c) ⇒ Object
26 27 28 |
# File 'lib/roglew/contexts/base.rb', line 26 def self.included(c) c.extend ClassMethods end |
Instance Method Details
#context ⇒ Object
38 39 40 |
# File 'lib/roglew/contexts/base.rb', line 38 def context @obj.context end |
#deferred? ⇒ Boolean
30 31 32 |
# File 'lib/roglew/contexts/base.rb', line 30 def deferred? @deferred end |
#immediate? ⇒ Boolean
34 35 36 |
# File 'lib/roglew/contexts/base.rb', line 34 def immediate? !@deferred end |
#initialize(obj, deferred, &block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/roglew/contexts/base.rb', line 18 def initialize(obj, deferred, &block) @obj, @deferred = obj, obj.is_deferred?(deferred) singleton_class.send(:include, @deferred ? DeferredContext : ImmediateContext) mod = self.class.instance_variable_get(@deferred ? :@deferred_mod : :@immediate_mod) singleton_class.send(:include, mod) if mod run(&block) if respond_to?(:run, true) end |