Class: PowerTypes::Observer
- Inherits:
-
Object
- Object
- PowerTypes::Observer
- Includes:
- AfterCommitEverywhere
- Defined in:
- lib/power_types/patterns/observer/observer.rb
Instance Attribute Summary collapse
-
#object ⇒ Object
readonly
Returns the value of attribute object.
Class Method Summary collapse
- .add_trigger(_type, _event, _handler = nil, _options = {}, &_block) ⇒ Object
- .trigger(_type, _event, _object) ⇒ Object
- .triggers ⇒ Object
Instance Method Summary collapse
- #execute_method_after_commit(method) ⇒ Object
-
#initialize(_object) ⇒ Observer
constructor
A new instance of Observer.
Constructor Details
#initialize(_object) ⇒ Observer
Returns a new instance of Observer.
36 37 38 |
# File 'lib/power_types/patterns/observer/observer.rb', line 36 def initialize(_object) @object = _object end |
Instance Attribute Details
#object ⇒ Object (readonly)
Returns the value of attribute object.
5 6 7 |
# File 'lib/power_types/patterns/observer/observer.rb', line 5 def object @object end |
Class Method Details
.add_trigger(_type, _event, _handler = nil, _options = {}, &_block) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/power_types/patterns/observer/observer.rb', line 21 def self.add_trigger(_type, _event, _handler = nil, = {}, &_block) triggers << PowerTypes::Trigger.new( _type, _event, (_handler || _block), ) triggers.last end |
.trigger(_type, _event, _object) ⇒ Object
15 16 17 18 19 |
# File 'lib/power_types/patterns/observer/observer.rb', line 15 def self.trigger(_type, _event, _object) triggers.select { |t| t.type == _type && t.event == _event }.each do |trigger| trigger.call(new(_object)) end end |
.triggers ⇒ Object
32 33 34 |
# File 'lib/power_types/patterns/observer/observer.rb', line 32 def self.triggers @triggers ||= [] end |
Instance Method Details
#execute_method_after_commit(method) ⇒ Object
52 53 54 |
# File 'lib/power_types/patterns/observer/observer.rb', line 52 def execute_method_after_commit(method) after_commit { send(method) } end |