Module: Unifig::Vars
- Extended by:
- TSort
- Defined in:
- lib/unifig/vars.rb
Overview
Information about variables after loading a configuration.
Class Method Summary collapse
-
.[](name) ⇒ Unifig::Var or nil
Retrieve a variable by name unless it does not exist.
-
.list ⇒ Array<Unifig::Var>
Returns a list the variables.
- .load!(yml, env) ⇒ Object
- .write_results!(results, provider) ⇒ Object
Class Method Details
.[](name) ⇒ Unifig::Var or nil
Retrieve a variable by name unless it does not exist.
49 50 51 52 |
# File 'lib/unifig/vars.rb', line 49 def [](name) @map ||= {} @map[name] end |
.list ⇒ Array<Unifig::Var>
Returns a list the variables.
40 41 42 |
# File 'lib/unifig/vars.rb', line 40 def list (@map || {}).values end |
.load!(yml, env) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/unifig/vars.rb', line 11 def load!(yml, env) vars = yml.to_h do |name, config| [name, Var.new(name, config || {}, env)] end vars .values .group_by(&:method) .each do |method_name, list| next unless list.size > 1 names = list.map { |var| %("#{var.name}") }.join(', ') raise DuplicateNameError, "variables all result in the same method name (Unifig.#{method_name}): #{names}" end @map = vars end |
.write_results!(results, provider) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/unifig/vars.rb', line 30 def write_results!(results, provider) results.each do |name, value| @map[name].value = value @map[name].provider = provider unless @map[name].value.nil? end end |