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