Class: NotifierBase
- Inherits:
-
Object
- Object
- NotifierBase
- Defined in:
- lib/skn_utils/notifier_base.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ NotifierBase
constructor
A new instance of NotifierBase.
- #register_listener(l) ⇒ Object
- #unregister_listener(l) ⇒ Object
Constructor Details
#initialize ⇒ NotifierBase
Returns a new instance of NotifierBase.
10 11 12 |
# File 'lib/skn_utils/notifier_base.rb', line 10 def initialize @listeners = [] end |
Class Method Details
.attribute(*properties) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/skn_utils/notifier_base.rb', line 22 def self.attribute(*properties) properties.each do |prop| define_method(prop) { instance_variable_get("@#{prop}") } define_method("#{prop}=") do |value| old_value = instance_variable_get("@#{prop}") return if (value == old_value) @listeners.each { |listener| listener.attribute_changed(prop, old_value, value) } instance_variable_set("@#{prop}", value) end end # loop on properties end |
Instance Method Details
#register_listener(l) ⇒ Object
14 15 16 |
# File 'lib/skn_utils/notifier_base.rb', line 14 def register_listener(l) @listeners.push(l) unless @listeners.include?(l) end |
#unregister_listener(l) ⇒ Object
18 19 20 |
# File 'lib/skn_utils/notifier_base.rb', line 18 def unregister_listener(l) @listeners.delete(l) end |