module FastConfig

Public Class Methods

config_dir() click to toggle source
# File lib/fast_config.rb, line 10
def self.config_dir
  ENV['FAST_CONFIG_DIR'] || @@config_dir || "config"
end
config_dir=(dir) click to toggle source
# File lib/fast_config.rb, line 6
def self.config_dir=(dir)
  @@config_dir = dir
end
extended(main_class) click to toggle source
Calls superclass method
# File lib/fast_config.rb, line 14
def self.extended(main_class)
  path = File.expand_path("#{self.config_dir}/#{snake_case(main_class)}.yml")
  configs = YAML.load(ERB.new(File.read(path)).result)
  if configs.has_key?(snake_case(main_class))
    configs[snake_case(main_class)].each{ |k,v| main_class.set(k.to_sym, v) }
  elsif configs.has_key?(snake_case(ENV['ENV']))
    configs[snake_case(ENV['ENV'])].each{ |k,v| main_class.set(k.to_sym, v) }
  end
  super
end
snake_case(camel_cased_word) click to toggle source
# File lib/fast_config.rb, line 34
def self.snake_case(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '_').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end

Public Instance Methods

set(key, val) click to toggle source
# File lib/fast_config.rb, line 30
def set(key, val)
  settings[key] = val
end
settings() click to toggle source
# File lib/fast_config.rb, line 26
def settings
  @settings ||= {}
end