class SknUtils::NotifierBase
Public Class Methods
attribute(*attrs)
click to toggle source
create writer-with-notify and reader
# File lib/skn_utils/notifier_base.rb, line 32 def self.attribute(*attrs) attrs.each do |attr| instance_variable_set("@#{attr}", nil) define_method(attr) do instance_variable_get("@#{attr}") end define_method("#{attr}=") do |value| old_value = instance_variable_get("@#{attr}") unless (value == old_value) instance_variable_set("@#{attr}", value) @listeners.each do |listener| listener.attribute_changed(attr, old_value, value) end end end end # loop on attrs end
new()
click to toggle source
# File lib/skn_utils/notifier_base.rb, line 19 def initialize @listeners = [] end
Public Instance Methods
register_listener(listener)
click to toggle source
# File lib/skn_utils/notifier_base.rb, line 23 def register_listener(listener) @listeners.push(listener) unless @listeners.include?(listener) end
unregister_listener(listener)
click to toggle source
# File lib/skn_utils/notifier_base.rb, line 27 def unregister_listener(listener) @listeners.delete(listener) end