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
- #action(name) ⇒ Object
- #action_names ⇒ Object
- #doctor_check(name) ⇒ Object
- #doctor_check_names ⇒ Object
- #hook_events ⇒ Object
- #hooks(event) ⇒ Object
-
#initialize ⇒ ExtensionRegistry
constructor
A new instance of ExtensionRegistry.
- #reducer(name) ⇒ Object
- #reducer_names ⇒ Object
- #register_action(name, &blk) ⇒ Object
- #register_doctor_check(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 10 |
# File 'lib/textus/extension_registry.rb', line 5 def initialize @actions = {} @reducers = {} @hooks = {} @doctor_checks = {} end |
Instance Method Details
#action(name) ⇒ Object
40 41 42 |
# File 'lib/textus/extension_registry.rb', line 40 def action(name) @actions[name.to_sym] or raise UsageError.new("unknown action: #{name}") end |
#action_names ⇒ Object
56 |
# File 'lib/textus/extension_registry.rb', line 56 def action_names = @actions.keys |
#doctor_check(name) ⇒ Object
52 53 54 |
# File 'lib/textus/extension_registry.rb', line 52 def doctor_check(name) @doctor_checks[name.to_sym] or raise UsageError.new("unknown doctor_check: #{name}") end |
#doctor_check_names ⇒ Object
59 |
# File 'lib/textus/extension_registry.rb', line 59 def doctor_check_names = @doctor_checks.keys |
#hook_events ⇒ Object
58 |
# File 'lib/textus/extension_registry.rb', line 58 def hook_events = @hooks.keys |
#hooks(event) ⇒ Object
48 49 50 |
# File 'lib/textus/extension_registry.rb', line 48 def hooks(event) @hooks[event.to_sym] || [] end |
#reducer(name) ⇒ Object
44 45 46 |
# File 'lib/textus/extension_registry.rb', line 44 def reducer(name) @reducers[name.to_sym] or raise UsageError.new("unknown reducer: #{name}") end |
#reducer_names ⇒ Object
57 |
# File 'lib/textus/extension_registry.rb', line 57 def reducer_names = @reducers.keys |
#register_action(name, &blk) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/textus/extension_registry.rb', line 12 def register_action(name, &blk) name = name.to_sym raise UsageError.new("action '#{name}' already registered") if @actions.key?(name) @actions[name] = blk end |
#register_doctor_check(name, &blk) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/textus/extension_registry.rb', line 33 def register_doctor_check(name, &blk) name = name.to_sym raise UsageError.new("doctor_check '#{name}' already registered") if @doctor_checks.key?(name) @doctor_checks[name] = blk end |
#register_hook(event, name, &blk) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/textus/extension_registry.rb', line 26 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
19 20 21 22 23 24 |
# File 'lib/textus/extension_registry.rb', line 19 def register_reducer(name, &blk) name = name.to_sym raise UsageError.new("reducer '#{name}' already registered") if @reducers.key?(name) @reducers[name] = blk end |