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, InvalidKeyError
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.
54 55 56 57 58 59 |
# File '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 ⇒ 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 } }
85 86 87 |
# File 'lib/active_support/encrypted_configuration.rb', line 85 def config @config ||= deep_symbolize_keys(deserialize(read)) end |
#inspect ⇒ Object
:nodoc:
89 90 91 |
# File 'lib/active_support/encrypted_configuration.rb', line 89 def inspect # :nodoc: "#<#{self.class.name}:#{'%#016x' % (object_id << 1)}>" end |
#read ⇒ Object
Reads the file and returns the decrypted content. See EncryptedFile#read.
62 63 64 65 66 67 |
# File '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 |
#validate! ⇒ Object
:nodoc:
69 70 71 72 73 74 75 |
# File 'lib/active_support/encrypted_configuration.rb', line 69 def validate! # :nodoc: deserialize(read).each_key do |key| key.to_sym rescue NoMethodError raise InvalidKeyError.new(content_path, key) end end |