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
::Hashwith 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 48
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 75
def config @config ||= deserialize(read).deep_symbolize_keys end
#read
Reads the file and returns the decrypted content. See EncryptedFile#read.
# File 'activesupport/lib/active_support/encrypted_configuration.rb', line 56
def read super rescue ActiveSupport::EncryptedFile::MissingContentError # Allow a config to be started without a file present "" end