Module: Config
- Extended by:
- Validation::Schema
- Defined in:
- lib/config.rb,
lib/config/error.rb,
lib/config/options.rb,
lib/config/version.rb,
lib/config/configuration.rb,
lib/config/rack/reloader.rb,
lib/config/validation/error.rb,
lib/config/validation/schema.rb,
lib/config/sources/env_source.rb,
lib/config/integrations/heroku.rb,
lib/config/sources/hash_source.rb,
lib/config/sources/yaml_source.rb,
lib/config/validation/validate.rb,
lib/config/integrations/sinatra.rb,
lib/config/integrations/rails/railtie.rb,
lib/config/dry_validation_requirements.rb,
lib/generators/config/install_generator.rb
Defined Under Namespace
Modules: DryValidationRequirements, Generators, Integrations, Rack, Sources, Validation Classes: Configuration, Error, Options
Constant Summary collapse
- VERSION =
'5.6.1'.freeze
Class Method Summary collapse
-
.load_and_set_settings(*sources) ⇒ Object
Loads and sets the settings constant!.
-
.load_files(*sources) ⇒ Object
Create a populated Options instance from a settings file.
- .local_setting_files(config_root, env) ⇒ Object
-
.registered(app) ⇒ Object
provide helper to register within your Sinatra app.
- .reload! ⇒ Object
- .setting_files(config_root, env) ⇒ Object
- .setup {|_self| ... } ⇒ Object
Methods included from Validation::Schema
Class Method Details
.load_and_set_settings(*sources) ⇒ Object
Loads and sets the settings constant!
58 59 60 61 62 63 64 65 |
# File 'lib/config.rb', line 58 def self.load_and_set_settings(*sources) name = Config.const_name Object.send(:remove_const, name) if Object.const_defined?(name) # Include extra sources in the loading process all_sources = [sources, Config.extra_sources].flatten.compact Object.const_set(name, Config.load_files(*all_sources)) end |
.load_files(*sources) ⇒ Object
Create a populated Options instance from a settings file. If a second file is given, then the sections of that file will overwrite existing sections of the first file.
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/config.rb', line 43 def self.load_files(*sources) config = Options.new # add settings sources [sources].flatten.compact.each do |source| config.add_source!(source) end config.add_source!(Sources::EnvSource.new(ENV)) if Config.use_env config.load! config end |
.local_setting_files(config_root, env) ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/config.rb', line 76 def self.local_setting_files(config_root, env) [ (File.join(config_root, "#{Config.file_name}.local.yml").to_s if env != 'test'), File.join(config_root, Config.dir_name, "#{env}.local.yml").to_s, File.join(config_root, 'environments', "#{env}.local.yml").to_s ].compact end |
.registered(app) ⇒ Object
provide helper to register within your Sinatra app
set :root, File.dirname(__FILE__) register Config
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/config/integrations/sinatra.rb', line 9 def self.registered(app) app.configure do |inner_app| env = inner_app.environment || ENV["RACK_ENV"] root = inner_app.root # use Padrino settings if applicable if defined?(Padrino) env = Padrino.env if Padrino.respond_to?(:env) root = Padrino.root if Padrino.respond_to?(:root) end Config.load_and_set_settings(Config.setting_files(File.join(root, 'config'), env)) inner_app.use(::Config::Rack::Reloader) if inner_app.development? end end |
.reload! ⇒ Object
84 85 86 |
# File 'lib/config.rb', line 84 def self.reload! Object.const_get(Config.const_name).reload! end |
.setting_files(config_root, env) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/config.rb', line 67 def self.setting_files(config_root, env) [ File.join(config_root, "#{Config.file_name}.yml").to_s, File.join(config_root, Config.dir_name, "#{env}.yml").to_s, File.join(config_root, 'environments', "#{env}.yml").to_s, *local_setting_files(config_root, env) ].freeze end |
.setup {|_self| ... } ⇒ Object
36 37 38 39 |
# File 'lib/config.rb', line 36 def self.setup yield self unless @_ran_once @_ran_once = true end |