class SsmConfig

Constants

VERSION

Public Class Methods

method_missing(meth, *args, &block) click to toggle source
Calls superclass method
# File lib/ssm_config.rb, line 6
def method_missing(meth, *args, &block)
  config_file = Rails.root.join('config', "#{meth}.yml")

  if File.exists?(config_file)
    write_config_accessor_for(meth)
    self.send(meth)
  else
    super
  end
end

Private Class Methods

parse_config_file(filename) click to toggle source
# File lib/ssm_config.rb, line 19
def parse_config_file(filename)
  YAML.load(ERB.new(File.read("#{Rails.root}/config/#{filename}")).result).symbolize_keys
end
parse_config_file_with_env(filename) click to toggle source
# File lib/ssm_config.rb, line 23
def parse_config_file_with_env(filename)
  yaml_loaded = YAML.load(ERB.new(File.read("#{Rails.root}/config/#{filename}")).result)
  (yaml_loaded[Rails.env] || yaml_loaded['any']).try(:with_indifferent_access)
end
write_config_accessor_for(meth) click to toggle source
# File lib/ssm_config.rb, line 28
def write_config_accessor_for(meth)
  self.instance_eval %Q{
    def #{meth}
      @#{meth} ||= parse_config_file_with_env('#{meth}.yml')
    end
  }
end