class Shaf::Settings
Constants
- DEFAULTS
- SETTINGS_FILE
Public Class Methods
env()
click to toggle source
# File lib/shaf/settings.rb, line 19 def env (ENV['APP_ENV'] || ENV['RACK_ENV'] || 'development').to_sym end
key?(key)
click to toggle source
# File lib/shaf/settings.rb, line 23 def key?(key) settings.key? key end
loaded?()
click to toggle source
# File lib/shaf/settings.rb, line 31 def loaded? !!defined? @settings end
to_h()
click to toggle source
# File lib/shaf/settings.rb, line 27 def to_h settings.dup end
Private Class Methods
define_getter(method)
click to toggle source
# File lib/shaf/settings.rb, line 64 def define_getter(method) define_singleton_method(method) do @settings[method] end end
define_setter(method)
click to toggle source
# File lib/shaf/settings.rb, line 70 def define_setter(method) key = method[0..-2].to_sym define_singleton_method(method) do |arg| @settings[key] = arg end end
load_config()
click to toggle source
# File lib/shaf/settings.rb, line 42 def load_config @settings = DEFAULTS.dup config = Utils.read_config(SETTINGS_FILE, erb: true) @settings.merge! config.fetch(env, {}) end
method_missing(method, *args)
click to toggle source
# File lib/shaf/settings.rb, line 48 def method_missing(method, *args) load_config unless loaded? if method.to_s.end_with? '=' define_setter(method) public_send(method, args.first) else define_getter(method) public_send(method) end end
respond_to_missing?(_method, _include_private = false)
click to toggle source
# File lib/shaf/settings.rb, line 60 def respond_to_missing?(_method, _include_private = false) true end
settings()
click to toggle source
# File lib/shaf/settings.rb, line 37 def settings load_config unless loaded? @settings end