class Squire::Configuration
Attributes
base_namespace[RW]
type[RW]
Public Instance Methods
namespace(namespace = nil, options = {})
click to toggle source
Sets and returns namespace
. If called without parameters, returns namespace
.
Possible options:
-
:base
- base namespace used for deep merging of values of other namespaces
# File lib/squire/configuration.rb, line 11 def namespace(namespace = nil, options = {}) return @namespace unless namespace @namespace = namespace.to_sym if namespace @base_namespace = options[:base].to_sym if options[:base] end
reload!()
click to toggle source
Reloads the settings
.
# File lib/squire/configuration.rb, line 88 def reload! @settings = nil end
settings(&block)
click to toggle source
Loaded configuration stored in Settings
class. Accepts block
as parameter.
Examples¶ ↑
settings do |settings| settings.a = 1 end settings do a 1 end settings.a = 1
# File lib/squire/configuration.rb, line 49 def settings(&block) @settings ||= setup settings = instance_variable_defined?(:@namespace) ? @settings.get_value(@namespace) : @settings if block_given? block.arity == 0 ? settings.instance_eval(&block) : block.call(settings) end settings end
Also aliased as: config
setup()
click to toggle source
Sets up the configuration based on namespace
and source
. If base_namespace
provided, merges it's values with other namespaces for handling nested overriding of values.
Favours values from namespace
over values from base_namespace
.
# File lib/squire/configuration.rb, line 69 def setup return Squire::Settings.new unless @source parser = Squire::Parser.of(@type) hash = parser.parse(source).with_indifferent_access if base_namespace hash.except(base_namespace).each do |key, values| # favours value from namespace over value from defaults hash[key] = hash[base_namespace].deep_merge(values) { |_, default, value| value.nil? ? default : value } end end Squire::Settings.from_hash(hash) end
source(source = nil, options = {})
click to toggle source
Sets source
for the configuration If called without parameters, returns source
.
Possible options:
-
:type
- type ofsource
(optional, based on file extension) -
:parser
- parse of inputsource
(optional, based on:type
)
# File lib/squire/configuration.rb, line 25 def source(source = nil, options = {}) return @source unless source @source = source @parser = options[:parser] @type = options[:type] @type ||= source.is_a?(Hash) ? :hash : File.extname(@source)[1..-1].to_sym end