Module: Observe
- Defined in:
- lib/observe.rb
Class Attribute Summary collapse
-
.observer ⇒ Object
readonly
Returns the value of attribute observer.
Instance Method Summary collapse
-
#add_observer(group, observer = nil, &block)
private
Add an observer to a class.
-
#destroy_observers(group = nil)
private
Destroy an observer.
-
#notify_observers(group, *args)
private
Notify an observer.
-
#observers ⇒ Hash<Symbol, Array>
private
A list of observers registered for a including class or module.
Class Attribute Details
.observer ⇒ Object (readonly)
Returns the value of attribute observer.
6 7 8 |
# File 'lib/observe.rb', line 6 def observer @observer end |
Instance Method Details
#add_observer(group, observer = nil, &block) (private)
This method returns an undefined value.
Add an observer to a class.
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/observe.rb', line 25 def add_observer group, observer=nil, &block obj = observer || block if obj group = group.to_sym observers[group] << Observe.observer.new(group, obj) else raise ArgumentError, "Wrong number of arguments (1 for 2)" end end |
#destroy_observers(group = nil) (private)
This method returns an undefined value.
Destroy an observer.
70 71 72 73 74 75 76 |
# File 'lib/observe.rb', line 70 def destroy_observers group=nil if group.nil? observers.clear else observers.delete(group.to_sym) end end |
#notify_observers(group, *args) (private)
This method returns an undefined value.
Notify an observer.
51 52 53 54 55 |
# File 'lib/observe.rb', line 51 def notify_observers group, *args observers[group.to_sym].each do |observer| observer.object.call(*args) end end |
#observers ⇒ Hash<Symbol, Array> (private)
A list of observers registered for a including class or module.
There's no need to use this method directly.
85 86 87 |
# File 'lib/observe.rb', line 85 def observers @observers = @observers || Hash.new { |h,k| h[k] = [] } end |