Class: ContextualConfig::ModuleRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/contextual_config/module_registry.rb

Overview

Registry for managing different modules that use ContextualConfig

Instance Method Summary collapse

Constructor Details

#initializeModuleRegistry

Returns a new instance of ModuleRegistry.



8
9
10
# File 'lib/contextual_config/module_registry.rb', line 8

def initialize
  @modules = {}
end

Instance Method Details

#allObject

Get all registered modules



27
28
29
# File 'lib/contextual_config/module_registry.rb', line 27

def all
  @modules.dup
end

#clear!Object

Clear all registrations



42
43
44
# File 'lib/contextual_config/module_registry.rb', line 42

def clear!
  @modules.clear
end

#configs_for_model(model_class) ⇒ Object

Get configurations for a specific model class



52
53
54
# File 'lib/contextual_config/module_registry.rb', line 52

def configs_for_model(model_class)
  @modules.values.select { |config| config.model_class == model_class }
end

#configs_with_key_prefix(prefix) ⇒ Object

Get configurations with a specific key prefix



57
58
59
# File 'lib/contextual_config/module_registry.rb', line 57

def configs_with_key_prefix(prefix)
  @modules.values.select { |config| config.key_prefix == prefix }
end

#get(module_name) ⇒ Object

Get a registered module configuration



22
23
24
# File 'lib/contextual_config/module_registry.rb', line 22

def get(module_name)
  @modules[module_name.to_sym]
end

#module_namesObject

Get all module names



47
48
49
# File 'lib/contextual_config/module_registry.rb', line 47

def module_names
  @modules.keys
end

#register(module_name) {|config| ... } ⇒ Object

Register a module with its configuration

Yields:

  • (config)


13
14
15
16
17
18
19
# File 'lib/contextual_config/module_registry.rb', line 13

def register(module_name)
  module_sym = module_name.to_sym
  config = @modules[module_sym] || ModuleConfig.new(module_name)
  yield(config) if block_given?
  @modules[module_sym] = config
  config
end

#registered?(module_name) ⇒ Boolean

Check if a module is registered

Returns:

  • (Boolean)


32
33
34
# File 'lib/contextual_config/module_registry.rb', line 32

def registered?(module_name)
  @modules.key?(module_name.to_sym)
end

#unregister(module_name) ⇒ Object

Unregister a module



37
38
39
# File 'lib/contextual_config/module_registry.rb', line 37

def unregister(module_name)
  @modules.delete(module_name.to_sym)
end