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 24 25 26 27 28 |
# File 'lib/fast_config.rb', line 14 def self.extended(main_class) path = File.("#{self.config_dir}/#{snake_case(main_class)}.yml") erb_file = ERB.new(File.read(path)) configs = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("4") YAML.safe_load(erb_file.result, aliases: true) else YAML.load(erb_file.result) end 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
39 40 41 42 43 44 45 |
# File 'lib/fast_config.rb', line 39 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
35 36 37 |
# File 'lib/fast_config.rb', line 35 def set(key, val) settings[key] = val end |
#settings ⇒ Object
31 32 33 |
# File 'lib/fast_config.rb', line 31 def settings @settings ||= {} end |