Module Observable
In: lib/observable.rb

Methods

Public Class methods

[Source]

# File lib/observable.rb, line 45
  def self.included(klass)
    klass.module_eval do
      class << self
        unless method_defined?(:notifier_methods_visibility)
          def notifier_methods_visibility(visibility)
            send(visibility, *instance_methods)
          end
        end
      end
    end
  end

[Source]

# File lib/observable.rb, line 49
          def notifier_methods_visibility(visibility)
            send(visibility, *instance_methods)
          end

Public Instance methods

[Source]

# File lib/observable.rb, line 14
  def add_observers(*observers)
    observers.each { |observer| add_observer(observer) }
  end

[Source]

# File lib/observable.rb, line 26
  def list_observers
    if defined? @observer_peers
      @observer_peers.dup
    else
      []
    end
  end

[Source]

# File lib/observable.rb, line 34
  def notify_observer(observer, *arg, &block)
    if defined? @observer_state and @observer_state
      if defined? @observer_peers
        if @observer_peers.include?(observer)
          observer.update(*arg, &block)
        end
      end
      @observer_state = false
    end
  end

[Source]

# File lib/observable.rb, line 18
  def observer?(observer)
    if defined? @observer_peers
      @observer_peers.include?(observer)
    else
      false
    end
  end

[Validate]