Module: CloudConfig
- Defined in:
- lib/cloud-config.rb,
lib/cloud-config/cache.rb,
lib/cloud-config/error.rb,
lib/cloud-config/version.rb,
lib/cloud-config/providers.rb,
lib/cloud-config/cache/redis.rb,
lib/cloud-config/cache/in_memory.rb,
lib/cloud-config/provider_config.rb,
lib/cloud-config/provider_options.rb,
lib/cloud-config/providers/in_memory.rb,
lib/cloud-config/providers/yaml_file.rb,
lib/cloud-config/providers/aws_parameter_store.rb,
lib/cloud-config/providers/aws_secrets_manager.rb
Overview
CloudConfig handles fetching key-value configuration settings from multiple providers. Configure CloudConfig to handle providers and the configuration keys.
Defined Under Namespace
Modules: Cache, Providers Classes: Error, MissingKey, ProviderConfig, ProviderOptions
Constant Summary collapse
- VERSION =
Version of CloudConfig
'0.2.2'
Class Method Summary collapse
-
.configure { ... } ⇒ Object
Configure CloudConfig with providers and their configuration keys.
-
.get(key, reset_cache: false) ⇒ Object
Fetch the value of a key using the appropriate provider.
-
.load_key(provider_config, key, reset_cache: false) ⇒ Object
Fetch a key with the provider configuration.
-
.preload ⇒ Object
Fetch all keys that are configured for preloading.
-
.reset! ⇒ Object
Reset the CloudConfig configuration.
-
.set(key, value) ⇒ Object
Set the value of a key with the configured provider.
Methods included from Cache
Methods included from Providers
Class Method Details
.configure { ... } ⇒ Object
Configure CloudConfig with providers and their configuration keys
31 32 33 |
# File 'lib/cloud-config.rb', line 31 def configure(&) instance_eval(&) end |
.get(key, reset_cache: false) ⇒ Object
Fetch the value of a key using the appropriate provider.
41 42 43 44 45 46 47 |
# File 'lib/cloud-config.rb', line 41 def get(key, reset_cache: false) provider_config = providers_by_key[key] raise MissingKey, 'Key not found' if provider_config.nil? load_key(provider_config, key, reset_cache:) end |
.load_key(provider_config, key, reset_cache: false) ⇒ Object
Fetch a key with the provider configuration. If caching is configured, the key will be fetched from the cache.
91 92 93 94 95 |
# File 'lib/cloud-config.rb', line 91 def load_key(provider_config, key, reset_cache: false) with_cache(key, reset_cache:, expire_in: provider_config.settings[key][:cache]) do provider_config.provider.get(key, provider_config.settings[key]) end end |
.preload ⇒ Object
Fetch all keys that are configured for preloading. This will automatically cache the corresponding keys.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/cloud-config.rb', line 65 def preload return if cache.nil? providers.each_value do |provider_config| next unless provider_config..preload if provider_config..async_preload? Parallel.each(provider_config.settings.keys) do |key| load_key(provider_config, key) end else provider_config.settings.each_key do |key| load_key(provider_config, key) end end end end |
.reset! ⇒ Object
Reset the CloudConfig configuration
98 99 100 101 102 |
# File 'lib/cloud-config.rb', line 98 def reset! @cache = nil @providers = {} @providers_by_key = {} end |
.set(key, value) ⇒ Object
Set the value of a key with the configured provider.
53 54 55 56 57 58 59 60 61 |
# File 'lib/cloud-config.rb', line 53 def set(key, value) provider_config = providers_by_key[key] raise MissingKey, 'Key not found' if provider_config.nil? provider_config.provider.set(key, value) cache&.set(key, value, expire_in: provider_config.settings[key][:cache]) end |