Class: Configuration::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/configuration/environment_config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEnvironment

Returns a new instance of Environment.



10
11
12
# File 'lib/configuration/environment_config.rb', line 10

def initialize
  @env_variables=[]
end

Instance Attribute Details

#env_variablesObject (readonly)

Returns the value of attribute env_variables.



8
9
10
# File 'lib/configuration/environment_config.rb', line 8

def env_variables
  @env_variables
end

Instance Method Details

#configure_group(name, &block) ⇒ Object



14
15
16
17
18
# File 'lib/configuration/environment_config.rb', line 14

def configure_group(name, &block)
  group_config = Configuration::Group.new(name)
  block.call(group_config)
  @env_variables.push(group_config.group_hash)	
end

#generate_output_file(output_env_file) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/configuration/environment_config.rb', line 21

def generate_output_file(output_env_file)
  output_file = File.open(output_env_file, 'w')
  sb = StringIO.new
  config_groups_sorted_by_name = @env_variables.sort_by { |config_group| config_group[:group_name] }
  config_groups_sorted_by_name.each do |config_group|
    sb.puts "### #{config_group[:group_name].upcase} configurations, generated at #{Time.now}"
    sb.puts
    config_group[:variables]
      .sort_by{ |variable| variable.keys[0] }
      .each { |config_group_env_variable| sb.puts configure_env_variable(config_group_env_variable) }
    sb.puts
  end
  output_file.puts sb.string
end