class BBC::Cosmos::Tools::Config::ProjectConfig

Public Class Methods

new(config_path, project, env = 'int') click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 10
def initialize(config_path, project, env = 'int')
  @project = project
  @env = env
  @config_path = config_path
end

Public Instance Methods

components() click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 16
def components
  config['components'].keys
end
generate(id) click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 20
def generate(id)
  component_config id
end
generate_cosmos(id) click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 24
def generate_cosmos(id)
  generate(id).reduce([]) do |object, (key, value)|
    object.tap { |o| o << {:value => value, :key => key} }
  end
end

Private Instance Methods

component_config(id) click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 53
def component_config(id)
  raise('Invalid component id') if config['components'][id].nil?
  config['components'][id]
end
config() click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 49
def config
  @config ||= YAML::load(config_path)
end
config_path() click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 36
def config_path
  if environment_exists?
    path = File.join(@config_path, @env, "#{@project}.yaml")
    if File.exist? path
      File.open(path).read
    else
      raise("#{@project} isn't a valid project")
    end
  else
    raise("#{@env} is an invalid environment")
  end
end
environment_exists?() click to toggle source
# File lib/bbc/cosmos/tools/config/project_config.rb, line 32
def environment_exists?
  File.directory? File.join(@config_path, @env)
end