Module: ConfigSL::Merge::ClassMethods

Defined in:
lib/configsl/merge.rb

Overview

Class methods to manage precedence and loading of sources.

Instance Method Summary collapse

Instance Method Details

#configsl_available_sourcesArray<Symbol>

Return the available sources dynamically discovered from ancestors

Returns:

  • (Array<Symbol>)


41
42
43
44
# File 'lib/configsl/merge.rb', line 41

def configsl_available_sources
  [:params] + ancestors.select { |ancestor| ancestor.respond_to?(:configsl_source_name) }
                       .map(&:configsl_source_name)
end

#load(params = {}, source_options = {}) ⇒ self

Load config from all available sources and merge them in order.

Parameters:

  • params (Hash) (defaults to: {})

    Configuration parameters to merge in at the highest precedence.

  • source_options (Hash) (defaults to: {})

    Optional per-source configuration options.

Returns:

  • (self)

    Configuration object with merged parameters.



18
19
20
21
# File 'lib/configsl/merge.rb', line 18

def load(params = {}, source_options = {})
  merged_params = configsl_load_merged_params(params, source_options)
  new(merged_params)
end

#precedence(*sources) ⇒ Array<Symbol>

Set or get precedence order

Parameters:

  • sources (Array<Symbol>)

    List of sources in order of priority, highest to lowest precedence.

Returns:

  • (Array<Symbol>)

    Full list of sources in precedence order.



28
29
30
31
32
33
34
35
36
# File 'lib/configsl/merge.rb', line 28

def precedence(*sources)
  sources = sources.flatten
  if sources.any?
    configsl_validate_precedence_sources(sources)
    @precedence = sources
  else
    @precedence || configsl_default_precedence
  end
end