Class: ActiveSupport::EncryptedConfiguration
Relationships & Source Files | |
Namespace Children | |
Exceptions:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
EncryptedFile
|
|
Instance Chain:
self,
EncryptedFile
|
|
Inherits: |
ActiveSupport::EncryptedFile
|
Defined in: | activesupport/lib/active_support/encrypted_configuration.rb |
Overview
Encrypted Configuration
Provides convenience methods on top of EncryptedFile
to access values stored as encrypted YAML.
Values can be accessed via ::Hash
methods, such as fetch
and dig
, or via dynamic accessor methods, similar to OrderedOptions
.
my_config = ActiveSupport::EncryptedConfiguration.new(...)
my_config.read # => "some_secret: 123\nsome_namespace:\n another_secret: 456"
my_config[:some_secret]
# => 123
my_config.some_secret
# => 123
my_config.dig(:some_namespace, :another_secret)
# => 456
my_config.some_namespace.another_secret
# => 456
my_config.fetch(:foo)
# => KeyError
my_config.foo!
# => KeyError
Constant Summary
EncryptedFile
- Inherited
Class Method Summary
EncryptedFile
- Inherited
Instance Attribute Summary
EncryptedFile
- Inherited
#content_path, #env_key, | |
#key | Returns the encryption key, first trying the environment variable specified by |
#key? | Returns truthy if |
#key_path, #raise_if_missing_key |
Instance Method Summary
-
#config
Returns the decrypted content as a
::Hash
with symbolized keys. -
#read
Reads the file and returns the decrypted content.
EncryptedFile
- Inherited
Constructor Details
.new(config_path:, key_path:, env_key:, raise_if_missing_key:) ⇒ EncryptedConfiguration
# File 'activesupport/lib/active_support/encrypted_configuration.rb', line 54
def initialize(config_path:, key_path:, env_key:, raise_if_missing_key:) super content_path: config_path, key_path: key_path, env_key: env_key, raise_if_missing_key: raise_if_missing_key @config = nil @options = nil end
Instance Method Details
#config
Returns the decrypted content as a ::Hash
with symbolized keys.
my_config = ActiveSupport::EncryptedConfiguration.new(...)
my_config.read # => "some_secret: 123\nsome_namespace:\n another_secret: 456"
my_config.config
# => { some_secret: 123, some_namespace: { another_secret: 789 } }
# File 'activesupport/lib/active_support/encrypted_configuration.rb', line 85
def config @config ||= deep_symbolize_keys(deserialize(read)) end
#read
Reads the file and returns the decrypted content. See EncryptedFile#read.
# File 'activesupport/lib/active_support/encrypted_configuration.rb', line 62
def read super rescue ActiveSupport::EncryptedFile::MissingContentError # Allow a config to be started without a file present "" end