Module: FastConfig
- Defined in:
- lib/fast_config.rb
Constant Summary collapse
- @@config_dir =
nil
Class Method Summary collapse
- .config_dir ⇒ Object
- .config_dir=(dir) ⇒ Object
- .extended(main_class) ⇒ Object
- .snake_case(camel_cased_word) ⇒ Object
Instance Method Summary collapse
Class Method Details
.config_dir ⇒ Object
10 11 12 |
# File 'lib/fast_config.rb', line 10 def self.config_dir ENV['FAST_CONFIG_DIR'] || @@config_dir || "config" end |
.config_dir=(dir) ⇒ Object
6 7 8 |
# File 'lib/fast_config.rb', line 6 def self.config_dir=(dir) @@config_dir = dir end |
.extended(main_class) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fast_config.rb', line 14 def self.extended(main_class) path = File.("#{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) ⇒ Object
34 35 36 37 38 39 40 |
# 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 |
Instance Method Details
#set(key, val) ⇒ Object
30 31 32 |
# File 'lib/fast_config.rb', line 30 def set(key, val) settings[key] = val end |
#settings ⇒ Object
26 27 28 |
# File 'lib/fast_config.rb', line 26 def settings @settings ||= {} end |