Class: Slack::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/laziness/registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



5
6
7
# File 'lib/laziness/registry.rb', line 5

def initialize
  @observers = []
end

Instance Attribute Details

#observersObject (readonly)

Returns the value of attribute observers.



3
4
5
# File 'lib/laziness/registry.rb', line 3

def observers
  @observers
end

Instance Method Details

#clearObject



9
10
11
# File 'lib/laziness/registry.rb', line 9

def clear
  observers.clear
end

#notify(topic, *args) ⇒ Object



13
14
15
# File 'lib/laziness/registry.rb', line 13

def notify(topic, *args)
  observers.select { |o| o.topic == topic }.map { |o| o.execute(*args) }
end

#register(topic = nil, observer = nil, func = :update, &blk) ⇒ Object



17
18
19
# File 'lib/laziness/registry.rb', line 17

def register(topic=nil, observer=nil, func=:update, &blk)
  observers << Observer.new(topic, observer, func, &blk)
end

#unregister(topic = nil, observer = nil, func = :update, &blk) ⇒ Object



21
22
23
# File 'lib/laziness/registry.rb', line 21

def unregister(topic=nil, observer=nil, func=:update, &blk)
  observers.delete Observer.new(topic, observer, func, &blk)
end