Class: Collavre::IntegrationSettings::Registry
- Inherits:
-
Object
- Object
- Collavre::IntegrationSettings::Registry
- Includes:
- Singleton
- Defined in:
- lib/collavre/integration_settings/registry.rb
Overview
Singleton registry of integration setting key definitions. Engines register their keys at boot via ‘to_prepare`, then the admin UI and Resolver consult this registry.
Instance Method Summary collapse
-
#all ⇒ Array<KeyDefinition>
All registered definitions (frozen snapshot).
-
#by_category ⇒ Hash{String => Array<KeyDefinition>}
Definitions grouped by category.
- #find(key) ⇒ KeyDefinition?
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
-
#register(key, category:, sensitive: true, requires_restart: false, env_var: nil, default: nil) ⇒ KeyDefinition
Register a key definition.
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
13 14 15 |
# File 'lib/collavre/integration_settings/registry.rb', line 13 def initialize @definitions = {} end |
Instance Method Details
#all ⇒ Array<KeyDefinition>
Returns all registered definitions (frozen snapshot).
39 40 41 |
# File 'lib/collavre/integration_settings/registry.rb', line 39 def all @definitions.values.freeze end |
#by_category ⇒ Hash{String => Array<KeyDefinition>}
Returns definitions grouped by category.
50 51 52 |
# File 'lib/collavre/integration_settings/registry.rb', line 50 def by_category @definitions.values.group_by(&:category) end |
#find(key) ⇒ KeyDefinition?
45 46 47 |
# File 'lib/collavre/integration_settings/registry.rb', line 45 def find(key) @definitions[key.to_sym] end |
#register(key, category:, sensitive: true, requires_restart: false, env_var: nil, default: nil) ⇒ KeyDefinition
Register a key definition.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/collavre/integration_settings/registry.rb', line 26 def register(key, category:, sensitive: true, requires_restart: false, env_var: nil, default: nil) key = key.to_sym @definitions[key] = KeyDefinition.new( key: key, category: category, sensitive: sensitive, requires_restart: requires_restart, env_var: env_var || key.to_s.upcase, default: default ) end |