Class: BlockRegistry
- Inherits:
-
Object
show all
- Defined in:
- lib/block_registry.rb,
lib/block_registry/errors.rb,
lib/block_registry/version.rb
Defined Under Namespace
Classes: Error, UnregisteredError
Constant Summary
collapse
- VERSION =
'1.0.0'
Instance Method Summary
collapse
Constructor Details
Returns a new instance of BlockRegistry.
6
7
8
|
# File 'lib/block_registry.rb', line 6
def initialize
self.mappings = {}
end
|
Instance Method Details
#handle(key, *args) ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/block_registry.rb', line 31
def handle(key, *args)
raise UnregisteredError, "\"#{key}\" is not registered" unless registered?(key)
mappings[key].each do |mapping|
mapping.call(*args)
end
end
|
#register(key, &block) ⇒ Object
10
11
12
13
|
# File 'lib/block_registry.rb', line 10
def register(key, &block)
mappings[key] ||= Set.new
mappings[key] << block
end
|
#registered?(key) ⇒ Boolean
Also known as:
handles?
26
27
28
|
# File 'lib/block_registry.rb', line 26
def registered?(key)
mappings.has_key?(key)
end
|
#unregister(key, &block) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/block_registry.rb', line 15
def unregister(key, &block)
raise UnregisteredError, "\"#{key}\" is not registered" unless registered?(key)
if block_given?
mappings[key].delete?(block)
mappings.delete(key) if mappings[key].empty?
else
mappings.delete(key)
end
end
|