Class: ActiveSupport::EncryptedConfiguration
- Inherits:
-
EncryptedFile
- Object
- EncryptedFile
- ActiveSupport::EncryptedConfiguration
- Defined in:
- 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
Defined Under Namespace
Classes: InvalidContentError
Constant Summary
Constants inherited from EncryptedFile
ActiveSupport::EncryptedFile::CIPHER
Instance Attribute Summary
Attributes inherited from EncryptedFile
#content_path, #env_key, #key_path, #raise_if_missing_key
Instance Method Summary collapse
-
#config ⇒ Object
Returns the decrypted content as a Hash with symbolized keys.
-
#initialize(config_path:, key_path:, env_key:, raise_if_missing_key:) ⇒ EncryptedConfiguration
constructor
A new instance of EncryptedConfiguration.
-
#inspect ⇒ Object
:nodoc:.
-
#read ⇒ Object
Reads the file and returns the decrypted content.
-
#validate! ⇒ Object
:nodoc:.
Methods inherited from EncryptedFile
#change, expected_key_length, generate_key, #key, #key?, #write
Constructor Details
#initialize(config_path:, key_path:, env_key:, raise_if_missing_key:) ⇒ EncryptedConfiguration
Returns a new instance of EncryptedConfiguration.
48 49 50 51 52 53 |
# File '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 ⇒ Object
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 } }
75 76 77 |
# File 'lib/active_support/encrypted_configuration.rb', line 75 def config @config ||= deserialize(read).deep_symbolize_keys end |
#inspect ⇒ Object
:nodoc:
79 80 81 |
# File 'lib/active_support/encrypted_configuration.rb', line 79 def inspect # :nodoc: "#<#{self.class.name}:#{'%#016x' % (object_id << 1)}>" end |
#read ⇒ Object
Reads the file and returns the decrypted content. See EncryptedFile#read.
56 57 58 59 60 61 |
# File '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 |
#validate! ⇒ Object
:nodoc:
63 64 65 |
# File 'lib/active_support/encrypted_configuration.rb', line 63 def validate! # :nodoc: deserialize(read) end |