Class: Filterameter::Registries::SubRegistry
- Inherits:
-
Object
- Object
- Filterameter::Registries::SubRegistry
- Defined in:
- lib/filterameter/registries/sub_registry.rb
Overview
SubRegistry
Class SubRegistry provides add and fetch methods as well as the initialization for sub-registries.
Subclasses must implement build_declaration.
Direct Known Subclasses
Instance Method Summary collapse
- #add(parameter_name, options) ⇒ Object
- #fetch(parameter_name) ⇒ Object
-
#initialize(factory) ⇒ SubRegistry
constructor
A new instance of SubRegistry.
Constructor Details
#initialize(factory) ⇒ SubRegistry
Returns a new instance of SubRegistry.
12 13 14 15 16 |
# File 'lib/filterameter/registries/sub_registry.rb', line 12 def initialize(factory) @factory = factory @declarations = {} @registry = {} end |
Instance Method Details
#add(parameter_name, options) ⇒ Object
18 19 20 21 |
# File 'lib/filterameter/registries/sub_registry.rb', line 18 def add(parameter_name, ) name = parameter_name.to_s @declarations[name] = build_declaration(name, ) end |
#fetch(parameter_name) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/filterameter/registries/sub_registry.rb', line 23 def fetch(parameter_name) name = parameter_name.to_s @registry.fetch(name) do raise Filterameter::Exceptions::UndeclaredParameterError, name unless @declarations.keys.include?(name) @registry[name] = @factory.build(@declarations[name]) end end |