Class: Chamber::FileSet
- Inherits:
-
Object
- Object
- Chamber::FileSet
- Defined in:
- lib/chamber/file_set.rb
Instance Method Summary collapse
-
#filenames ⇒ Object
Internal: Returns an Array of the ordered list of files that was processed by Chamber in order to get the resulting settings values.
-
#initialize(options = {}) ⇒ FileSet
constructor
A new instance of FileSet.
- #secure ⇒ Object
-
#to_settings ⇒ Object
Internal: Converts the FileSet into a Settings object which represents all the settings specified in all of the files in the FileSet.
Constructor Details
#initialize(options = {}) ⇒ FileSet
Returns a new instance of FileSet.
113 114 115 116 117 118 |
# File 'lib/chamber/file_set.rb', line 113 def initialize( = {}) self.namespaces = [:namespaces] || {} self.decryption_key = [:decryption_key] self.encryption_key = [:encryption_key] self.paths = .fetch(:files) end |
Instance Method Details
#filenames ⇒ Object
Internal: Returns an Array of the ordered list of files that was processed by Chamber in order to get the resulting settings values. This is useful for debugging if a given settings value isn’t quite what you anticipated it should be.
Returns an Array of file path strings
128 129 130 |
# File 'lib/chamber/file_set.rb', line 128 def filenames @filenames ||= files.map(&:to_s) end |
#secure ⇒ Object
173 174 175 |
# File 'lib/chamber/file_set.rb', line 173 def secure files.each(&:secure) end |
#to_settings ⇒ Object
Internal: Converts the FileSet into a Settings object which represents all the settings specified in all of the files in the FileSet.
This can be used in one of two ways. You may either specify a block which will be passed each file’s settings as they are converted, or you can choose not to pass a block, in which case it will pass back a single completed Settings object to the caller.
The reason the block version is used in Chamber.settings is because we want to be able to load each settings file as it’s processed so that we can use those already-processed settings in subsequently processed settings files.
Examples:
###
# Specifying a Block
#
file_set = FileSet.new files: [ '/path/to/my/settings.yml' ]
file_set.to_settings do |settings|
# do stuff with each settings
end
###
# No Block Specified
#
file_set = FileSet.new files: [ '/path/to/my/settings.yml' ]
file_set.to_settings
# => <Chamber::Settings>
165 166 167 168 169 170 171 |
# File 'lib/chamber/file_set.rb', line 165 def to_settings files.reduce(Settings.new) do |settings, file| settings.merge(file.to_settings).tap do |merged| yield merged if block_given? end end end |