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