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, input_type: :string, admin_visible: true) ⇒ 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).
44 45 46 |
# File 'lib/collavre/integration_settings/registry.rb', line 44 def all @definitions.values.freeze end |
#by_category ⇒ Hash{String => Array<KeyDefinition>}
Returns definitions grouped by category.
55 56 57 |
# File 'lib/collavre/integration_settings/registry.rb', line 55 def by_category @definitions.values.group_by(&:category) end |
#find(key) ⇒ KeyDefinition?
50 51 52 |
# File 'lib/collavre/integration_settings/registry.rb', line 50 def find(key) @definitions[key.to_sym] end |
#register(key, category:, sensitive: true, requires_restart: false, env_var: nil, default: nil, input_type: :string, admin_visible: true) ⇒ KeyDefinition
Register a key definition.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/collavre/integration_settings/registry.rb', line 28 def register(key, category:, sensitive: true, requires_restart: false, env_var: nil, default: nil, input_type: :string, admin_visible: true) 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, input_type: input_type, admin_visible: admin_visible ) end |