Module: MineSetting
- Defined in:
- lib/mine_setting.rb,
lib/mine_setting/version.rb
Overview
Files:
config/settings/base.yml
config/settings/secrets.yml
config/settings/other_config.yml
File Content:
development:
foo: bar
test:
xxx: yyy
Code:
class MySettings
extend MineSetting
load_dir Rails.root.join('config/settings'), 'development'
end
MySettings.base # bar MySettings.secrets MySettings.other_config
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(cls) ⇒ Object
31 32 33 |
# File 'lib/mine_setting.rb', line 31 def self.included(cls) raise "Cannot include SimpleSettings, please use extend" end |
Instance Method Details
#load_dir(dir_path, env) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/mine_setting.rb', line 35 def load_dir(dir_path, env) Dir[File.join(dir_path, '*')].each do |filepath| filename = File.basename filepath next unless filename =~ /^\w+\.ya?ml$/ puts "Load config '#{filename}'" setting_name = filename.gsub(/\.ya?ml/, '') eval(%Q{ def self.#{setting_name} @#{setting_name} ||= load_setting('#{filepath}', '#{env}') end }) end end |