Class: Textus::ExtensionRegistry
- Inherits:
-
Object
- Object
- Textus::ExtensionRegistry
- Defined in:
- lib/textus/extension_registry.rb
Constant Summary collapse
- EVENTS =
%i[put delete refresh build accept].freeze
Instance Method Summary collapse
- #fetcher(name) ⇒ Object
- #fetcher_names ⇒ Object
- #hook_events ⇒ Object
- #hooks(event) ⇒ Object
-
#initialize ⇒ ExtensionRegistry
constructor
A new instance of ExtensionRegistry.
- #reducer(name) ⇒ Object
- #reducer_names ⇒ Object
- #register_fetcher(name, &blk) ⇒ Object
- #register_hook(event, name, &blk) ⇒ Object
- #register_reducer(name, &blk) ⇒ Object
Constructor Details
#initialize ⇒ ExtensionRegistry
Returns a new instance of ExtensionRegistry.
5 6 7 8 9 |
# File 'lib/textus/extension_registry.rb', line 5 def initialize @fetchers = {} @reducers = {} @hooks = {} end |
Instance Method Details
#fetcher(name) ⇒ Object
32 33 34 |
# File 'lib/textus/extension_registry.rb', line 32 def fetcher(name) @fetchers[name.to_sym] or raise UsageError.new("unknown fetcher: #{name}") end |
#fetcher_names ⇒ Object
44 |
# File 'lib/textus/extension_registry.rb', line 44 def fetcher_names = @fetchers.keys |
#hook_events ⇒ Object
46 |
# File 'lib/textus/extension_registry.rb', line 46 def hook_events = @hooks.keys |
#hooks(event) ⇒ Object
40 41 42 |
# File 'lib/textus/extension_registry.rb', line 40 def hooks(event) @hooks[event.to_sym] || [] end |
#reducer(name) ⇒ Object
36 37 38 |
# File 'lib/textus/extension_registry.rb', line 36 def reducer(name) @reducers[name.to_sym] or raise UsageError.new("unknown reducer: #{name}") end |
#reducer_names ⇒ Object
45 |
# File 'lib/textus/extension_registry.rb', line 45 def reducer_names = @reducers.keys |
#register_fetcher(name, &blk) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/textus/extension_registry.rb', line 11 def register_fetcher(name, &blk) name = name.to_sym raise UsageError.new("fetcher '#{name}' already registered") if @fetchers.key?(name) @fetchers[name] = blk end |
#register_hook(event, name, &blk) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/textus/extension_registry.rb', line 25 def register_hook(event, name, &blk) event = event.to_sym raise UsageError.new("unknown event: #{event}") unless EVENTS.include?(event) (@hooks[event] ||= []) << { name: name.to_sym, callable: blk } end |
#register_reducer(name, &blk) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/textus/extension_registry.rb', line 18 def register_reducer(name, &blk) name = name.to_sym raise UsageError.new("reducer '#{name}' already registered") if @reducers.key?(name) @reducers[name] = blk end |