module StateInspector::Reporter

OBSERVABLE PATTERN HASH-LIKE KEY OF OJECT TO OBSERVER/LOGGER INSTANCE

Public Class Methods

[](key) click to toggle source
# File lib/state_inspector/reporter.rb, line 8
def [](key)
  reporters[key]
end
[]=(key, value) click to toggle source
# File lib/state_inspector/reporter.rb, line 12
def []=(key, value)
  reporters[key] = value
end
default(observer=nil) click to toggle source
# File lib/state_inspector/reporter.rb, line 37
def default observer=nil
  @default = observer if observer
  reporters.default = @default 
  @default
end
drop(key) click to toggle source
# File lib/state_inspector/reporter.rb, line 33
def drop key
  reporters.delete key
end
get(key) click to toggle source
# File lib/state_inspector/reporter.rb, line 24
def get key
  unless key.respond_to?(:class_exec)
    unless reporters.has_key?(key)
      return self[key.class] 
    end
  end
  self[key] 
end
has_key?(key) click to toggle source
# File lib/state_inspector/reporter.rb, line 16
def has_key? key
  reporters.has_key?(key)
end
has_observer?(key) click to toggle source
# File lib/state_inspector/reporter.rb, line 20
def has_observer? key
  reporters.has_key?(key) || (reporters.has_key?(key.class) if key.respond_to?(:class_exec))
end

Private Class Methods

reporters() click to toggle source
# File lib/state_inspector/reporter.rb, line 44
def reporters
  @reporters ||= Hash.new.tap {|h|
    h.default = @default || Observers::NullObserver
  }
end