config 1.7.2 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +115 -31
- data/CONTRIBUTING.md +32 -0
- data/README.md +120 -76
- data/config.gemspec +28 -43
- data/lib/config.rb +37 -37
- data/lib/config/configuration.rb +36 -0
- data/lib/config/integrations/rails/railtie.rb +1 -1
- data/lib/config/options.rb +18 -8
- data/lib/config/validation/error.rb +2 -13
- data/lib/config/validation/schema.rb +8 -9
- data/lib/config/validation/validate.rb +13 -8
- data/lib/config/version.rb +1 -1
- data/lib/generators/config/templates/config.rb +6 -1
- metadata +48 -126
- data/lib/config/integrations/rails/engine.rb +0 -9
- data/spec/app/rails_5.1/README.md +0 -24
- data/spec/app/rails_5.2/README.md +0 -24
- data/spec/app/rails_5/README.md +0 -24
data/config.gemspec
CHANGED
|
@@ -7,63 +7,48 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
s.version = Config::VERSION
|
|
8
8
|
s.date = Time.now.strftime '%F'
|
|
9
9
|
s.authors = ['Piotr Kuczynski', 'Fred Wu', 'Jacques Crocker']
|
|
10
|
-
s.email = %w
|
|
10
|
+
s.email = %w[piotr.kuczynski@gmail.com ifredwu@gmail.com railsjedi@gmail.com]
|
|
11
11
|
s.summary = 'Effortless multi-environment settings in Rails, Sinatra, Pandrino and others'
|
|
12
12
|
s.description = 'Easiest way to manage multi-environment settings in any ruby project or framework: ' +
|
|
13
13
|
'Rails, Sinatra, Pandrino and others'
|
|
14
|
-
s.homepage = 'https://github.com/
|
|
14
|
+
s.homepage = 'https://github.com/rubyconfig/config'
|
|
15
15
|
s.license = 'MIT'
|
|
16
|
-
s.extra_rdoc_files = %w
|
|
16
|
+
s.extra_rdoc_files = %w[README.md CHANGELOG.md CONTRIBUTING.md LICENSE.md]
|
|
17
17
|
s.rdoc_options = ['--charset=UTF-8']
|
|
18
|
+
s.post_install_message = "\n\e[33mThanks for installing Config\e[0m
|
|
19
|
+
Please consider donating to our open collective to help us maintain this project.
|
|
20
|
+
\n
|
|
21
|
+
Donate: \e[34mhttps://opencollective.com/rubyconfig/donate\e[0m\n"
|
|
18
22
|
|
|
19
23
|
s.files = `git ls-files`.split($/)
|
|
20
|
-
s.files.select! { |file| /(^lib
|
|
21
|
-
s.files += Dir.glob('doc/**/*')
|
|
24
|
+
s.files.select! { |file| /(^lib\/|^\w+.md$|\.gemspec$)/ =~ file }
|
|
22
25
|
|
|
23
26
|
s.require_paths = ['lib']
|
|
24
|
-
s.required_ruby_version = '>= 2.
|
|
27
|
+
s.required_ruby_version = '>= 2.4.0'
|
|
25
28
|
|
|
26
29
|
s.add_dependency 'deep_merge', '~> 1.2', '>= 1.2.1'
|
|
30
|
+
s.add_dependency 'dry-validation', '~> 1.0', '>= 1.0.0'
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
s.add_dependency 'activesupport', '>= 3.0'
|
|
30
|
-
s.add_dependency 'dry-validation', '~> 0.12', '>= 0.12.2', '< 1.0.0'
|
|
31
|
-
|
|
32
|
-
s.add_development_dependency 'rails', '~> 5.2', '>= 5.2.2'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
if RUBY_VERSION >= '2.1' && RUBY_VERSION < '2.2'
|
|
36
|
-
s.add_dependency 'activesupport', '>= 3.0', '< 5.0.0'
|
|
37
|
-
s.add_dependency 'dry-configurable', '~> 0.5.0'
|
|
38
|
-
s.add_dependency 'dry-logic', '~> 0.5.0'
|
|
39
|
-
s.add_dependency 'dry-validation', '~> 0.10', '>= 0.10.7', '< 1.0.0'
|
|
40
|
-
s.add_dependency 'i18n', '~> 0.9.0'
|
|
41
|
-
|
|
42
|
-
s.add_development_dependency 'rails', '< 5.0.0'
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
s.add_development_dependency 'bundler', '~> 1.13', '>= 1.13.6'
|
|
46
|
-
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
|
32
|
+
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
|
47
33
|
|
|
48
34
|
# Testing
|
|
49
|
-
s.add_development_dependency 'appraisal',
|
|
50
|
-
s.add_development_dependency 'rspec',
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
s.add_development_dependency 'rubocop', '~> 0.50', '< 0.51' if RUBY_VERSION < '2.1'
|
|
60
|
-
# Version 0.58 drops support for Ruby 2.1
|
|
61
|
-
s.add_development_dependency 'rubocop', '~> 0.57', '< 0.58' if RUBY_VERSION >= '2.1' && RUBY_VERSION < '2.2'
|
|
62
|
-
# Version 0.62 requires Ruby 2.2
|
|
63
|
-
s.add_development_dependency 'rubocop', '~> 0.62' if RUBY_VERSION >= '2.2'
|
|
35
|
+
s.add_development_dependency 'appraisal', '~> 2.3', '>= 2.3.0'
|
|
36
|
+
s.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
|
|
37
|
+
|
|
38
|
+
# Default RSpec run will test against latest Rails app
|
|
39
|
+
unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
|
|
40
|
+
gems_to_install = /gem "(.*?)", "(.*?)"(?!, platform: (?!\[:ruby\]))/
|
|
41
|
+
File.read(Dir['gemfiles/rails*.gemfile'].sort.last).scan(gems_to_install) do |name, version|
|
|
42
|
+
s.add_development_dependency name, version
|
|
43
|
+
end
|
|
44
|
+
end
|
|
64
45
|
|
|
65
|
-
if ENV['
|
|
66
|
-
|
|
67
|
-
s.add_development_dependency 'simplecov', '~> 0.
|
|
46
|
+
if ENV['GITHUB_ACTIONS']
|
|
47
|
+
# Code coverage is needed only in CI
|
|
48
|
+
s.add_development_dependency 'simplecov', '~> 0.18.5' if RUBY_ENGINE == 'ruby'
|
|
49
|
+
else
|
|
50
|
+
# Static code analysis to be used locally
|
|
51
|
+
s.add_development_dependency 'mdl', '~> 0.9', '>= 0.9.0'
|
|
52
|
+
s.add_development_dependency 'rubocop', '~> 0.85.0'
|
|
68
53
|
end
|
|
69
54
|
end
|
data/lib/config.rb
CHANGED
|
@@ -1,39 +1,34 @@
|
|
|
1
|
-
require 'active_support/core_ext/module/attribute_accessors'
|
|
2
|
-
|
|
3
1
|
require 'config/compatibility'
|
|
4
2
|
require 'config/options'
|
|
3
|
+
require 'config/configuration'
|
|
5
4
|
require 'config/version'
|
|
6
|
-
require 'config/integrations/rails/engine' if defined?(::Rails)
|
|
7
5
|
require 'config/sources/yaml_source'
|
|
8
6
|
require 'config/sources/hash_source'
|
|
9
|
-
require 'config/validation/schema'
|
|
7
|
+
require 'config/validation/schema'
|
|
10
8
|
require 'deep_merge'
|
|
11
9
|
|
|
12
10
|
module Config
|
|
13
|
-
extend Config::Validation::Schema
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@@knockout_prefix = nil
|
|
31
|
-
@@merge_nil_values = true
|
|
32
|
-
@@overwrite_arrays = true
|
|
11
|
+
extend Config::Validation::Schema
|
|
12
|
+
extend Config::Configuration.new(
|
|
13
|
+
# general options
|
|
14
|
+
const_name: 'Settings',
|
|
15
|
+
use_env: false,
|
|
16
|
+
env_prefix: 'Settings',
|
|
17
|
+
env_separator: '.',
|
|
18
|
+
env_converter: :downcase,
|
|
19
|
+
env_parse_values: true,
|
|
20
|
+
fail_on_missing: false,
|
|
21
|
+
# deep_merge options
|
|
22
|
+
knockout_prefix: nil,
|
|
23
|
+
merge_nil_values: true,
|
|
24
|
+
overwrite_arrays: true,
|
|
25
|
+
merge_hash_arrays: false,
|
|
26
|
+
validation_contract: nil
|
|
27
|
+
)
|
|
33
28
|
|
|
34
29
|
def self.setup
|
|
35
|
-
yield self
|
|
36
|
-
|
|
30
|
+
yield self unless @_ran_once
|
|
31
|
+
@_ran_once = true
|
|
37
32
|
end
|
|
38
33
|
|
|
39
34
|
# Create a populated Options instance from a settings file. If a second file is given, then the sections of that
|
|
@@ -47,30 +42,35 @@ module Config
|
|
|
47
42
|
end
|
|
48
43
|
|
|
49
44
|
config.load!
|
|
50
|
-
config.load_env! if @@use_env
|
|
51
45
|
config
|
|
52
46
|
end
|
|
53
47
|
|
|
54
48
|
# Loads and sets the settings constant!
|
|
55
49
|
def self.load_and_set_settings(*files)
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
name = Config.const_name
|
|
51
|
+
Object.send(:remove_const, name) if Object.const_defined?(name)
|
|
52
|
+
Object.const_set(name, Config.load_files(files))
|
|
58
53
|
end
|
|
59
54
|
|
|
60
55
|
def self.setting_files(config_root, env)
|
|
61
56
|
[
|
|
62
|
-
File.join(config_root,
|
|
63
|
-
File.join(config_root,
|
|
64
|
-
File.join(config_root,
|
|
65
|
-
|
|
66
|
-
File.join(config_root, "settings.local.yml").to_s,
|
|
67
|
-
File.join(config_root, "settings", "#{env}.local.yml").to_s,
|
|
68
|
-
File.join(config_root, "environments", "#{env}.local.yml").to_s
|
|
57
|
+
File.join(config_root, 'settings.yml').to_s,
|
|
58
|
+
File.join(config_root, 'settings', "#{env}.yml").to_s,
|
|
59
|
+
File.join(config_root, 'environments', "#{env}.yml").to_s,
|
|
60
|
+
*local_setting_files(config_root, env)
|
|
69
61
|
].freeze
|
|
70
62
|
end
|
|
71
63
|
|
|
64
|
+
def self.local_setting_files(config_root, env)
|
|
65
|
+
[
|
|
66
|
+
(File.join(config_root, 'settings.local.yml').to_s if env != 'test'),
|
|
67
|
+
File.join(config_root, 'settings', "#{env}.local.yml").to_s,
|
|
68
|
+
File.join(config_root, 'environments', "#{env}.local.yml").to_s
|
|
69
|
+
].compact
|
|
70
|
+
end
|
|
71
|
+
|
|
72
72
|
def self.reload!
|
|
73
|
-
|
|
73
|
+
Object.const_get(Config.const_name).reload!
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Config
|
|
2
|
+
# The main configuration backbone
|
|
3
|
+
class Configuration < Module
|
|
4
|
+
# Accepts configuration options,
|
|
5
|
+
# initializing a module that can be used to extend
|
|
6
|
+
# the necessary class with the provided config methods
|
|
7
|
+
def initialize(**attributes)
|
|
8
|
+
attributes.each do |name, default|
|
|
9
|
+
define_reader(name, default)
|
|
10
|
+
define_writer(name)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def define_reader(name, default)
|
|
17
|
+
variable = :"@#{name}"
|
|
18
|
+
|
|
19
|
+
define_method(name) do
|
|
20
|
+
if instance_variable_defined?(variable)
|
|
21
|
+
instance_variable_get(variable)
|
|
22
|
+
else
|
|
23
|
+
default
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def define_writer(name)
|
|
29
|
+
variable = :"@#{name}"
|
|
30
|
+
|
|
31
|
+
define_method("#{name}=") do |value|
|
|
32
|
+
instance_variable_set(variable, value)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -23,7 +23,7 @@ module Config
|
|
|
23
23
|
# Development environment should reload settings on every request
|
|
24
24
|
if ::Rails.env.development?
|
|
25
25
|
initializer :config_reload_on_development do
|
|
26
|
-
|
|
26
|
+
ActiveSupport.on_load :action_controller_base do
|
|
27
27
|
if ::Rails::VERSION::MAJOR >= 4
|
|
28
28
|
prepend_before_action { ::Config.reload! }
|
|
29
29
|
else
|
data/lib/config/options.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'ostruct'
|
|
2
|
-
require 'config/validation/validate'
|
|
2
|
+
require 'config/validation/validate'
|
|
3
3
|
|
|
4
4
|
module Config
|
|
5
5
|
class Options < OpenStruct
|
|
6
6
|
include Enumerable
|
|
7
|
-
include Validation::Validate
|
|
7
|
+
include Validation::Validate
|
|
8
8
|
|
|
9
9
|
def keys
|
|
10
10
|
marshal_dump.keys
|
|
@@ -59,6 +59,11 @@ module Config
|
|
|
59
59
|
h[key] ||= {}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
unless leaf.is_a?(Hash)
|
|
63
|
+
conflicting_key = (prefix + keys[0...-1]).join(separator)
|
|
64
|
+
raise "Environment variable #{variable} conflicts with variable #{conflicting_key}"
|
|
65
|
+
end
|
|
66
|
+
|
|
62
67
|
leaf[keys.last] = Config.env_parse_values ? __value(value) : value
|
|
63
68
|
end
|
|
64
69
|
|
|
@@ -82,7 +87,8 @@ module Config
|
|
|
82
87
|
preserve_unmergeables: false,
|
|
83
88
|
knockout_prefix: Config.knockout_prefix,
|
|
84
89
|
overwrite_arrays: Config.overwrite_arrays,
|
|
85
|
-
merge_nil_values: Config.merge_nil_values
|
|
90
|
+
merge_nil_values: Config.merge_nil_values,
|
|
91
|
+
merge_hash_arrays: Config.merge_hash_arrays
|
|
86
92
|
)
|
|
87
93
|
end
|
|
88
94
|
end
|
|
@@ -91,7 +97,7 @@ module Config
|
|
|
91
97
|
marshal_load(__convert(conf).marshal_dump)
|
|
92
98
|
|
|
93
99
|
reload_env! if Config.use_env
|
|
94
|
-
validate!
|
|
100
|
+
validate!
|
|
95
101
|
|
|
96
102
|
self
|
|
97
103
|
end
|
|
@@ -126,6 +132,10 @@ module Config
|
|
|
126
132
|
to_hash.to_json(*args)
|
|
127
133
|
end
|
|
128
134
|
|
|
135
|
+
def as_json(options = nil)
|
|
136
|
+
to_hash.as_json(options)
|
|
137
|
+
end
|
|
138
|
+
|
|
129
139
|
def merge!(hash)
|
|
130
140
|
current = to_hash
|
|
131
141
|
DeepMerge.deep_merge!(
|
|
@@ -134,14 +144,15 @@ module Config
|
|
|
134
144
|
preserve_unmergeables: false,
|
|
135
145
|
knockout_prefix: Config.knockout_prefix,
|
|
136
146
|
overwrite_arrays: Config.overwrite_arrays,
|
|
137
|
-
merge_nil_values: Config.merge_nil_values
|
|
147
|
+
merge_nil_values: Config.merge_nil_values,
|
|
148
|
+
merge_hash_arrays: Config.merge_hash_arrays
|
|
138
149
|
)
|
|
139
150
|
marshal_load(__convert(current).marshal_dump)
|
|
140
151
|
self
|
|
141
152
|
end
|
|
142
153
|
|
|
143
154
|
# Some keywords that don't play nicely with OpenStruct
|
|
144
|
-
SETTINGS_RESERVED_NAMES = %w[select collect test count zip].freeze
|
|
155
|
+
SETTINGS_RESERVED_NAMES = %w[select collect test count zip min max exit!].freeze
|
|
145
156
|
|
|
146
157
|
# An alternative mechanism for property access.
|
|
147
158
|
# This let's you do foo['bar'] along with foo.bar.
|
|
@@ -199,7 +210,6 @@ module Config
|
|
|
199
210
|
|
|
200
211
|
h.each do |k, v|
|
|
201
212
|
k = k.to_s if !k.respond_to?(:to_sym) && k.respond_to?(:to_s)
|
|
202
|
-
s.new_ostruct_member(k)
|
|
203
213
|
|
|
204
214
|
if v.is_a?(Hash)
|
|
205
215
|
v = v["type"] == "hash" ? v["contents"] : __convert(v)
|
|
@@ -207,7 +217,7 @@ module Config
|
|
|
207
217
|
v = v.collect { |e| e.instance_of?(Hash) ? __convert(e) : e }
|
|
208
218
|
end
|
|
209
219
|
|
|
210
|
-
s
|
|
220
|
+
s[k] = v
|
|
211
221
|
end
|
|
212
222
|
s
|
|
213
223
|
end
|
|
@@ -3,22 +3,11 @@ module Config
|
|
|
3
3
|
class Error < StandardError
|
|
4
4
|
|
|
5
5
|
def self.format(v_res)
|
|
6
|
-
|
|
7
|
-
"#{' ' * 2}#{
|
|
6
|
+
v_res.errors.group_by(&:path).map do |path, messages|
|
|
7
|
+
"#{' ' * 2}#{path.join('.')}: #{messages.map(&:text).join('; ')}"
|
|
8
8
|
end.join("\n")
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def self.flatten_hash(h, acc={}, pref=[])
|
|
12
|
-
h.inject(acc) do |a, (k, v)|
|
|
13
|
-
if v.is_a?(Hash)
|
|
14
|
-
flatten_hash(v, acc, pref + [k])
|
|
15
|
-
else
|
|
16
|
-
acc[(pref + [k]).join('.')] = v
|
|
17
|
-
acc
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
11
|
end
|
|
23
12
|
end
|
|
24
13
|
end
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
require 'dry-validation'
|
|
2
|
-
require 'config/validation/schema'
|
|
3
|
-
|
|
4
1
|
module Config
|
|
5
2
|
module Validation
|
|
6
3
|
module Schema
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
# Assigns schema configuration option
|
|
5
|
+
def schema=(value)
|
|
6
|
+
@schema = value
|
|
7
|
+
end
|
|
10
8
|
|
|
11
9
|
def schema(&block)
|
|
12
10
|
if block_given?
|
|
13
|
-
|
|
11
|
+
# Delay require until optional schema validation is requested
|
|
12
|
+
require 'dry-validation'
|
|
13
|
+
@schema = Dry::Schema.define(&block)
|
|
14
14
|
else
|
|
15
|
-
|
|
15
|
+
@schema
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
|
-
|
|
19
18
|
end
|
|
20
19
|
end
|
|
21
20
|
end
|
|
@@ -3,18 +3,23 @@ require 'config/validation/error'
|
|
|
3
3
|
module Config
|
|
4
4
|
module Validation
|
|
5
5
|
module Validate
|
|
6
|
-
|
|
7
6
|
def validate!
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
validate_using!(Config.validation_contract)
|
|
8
|
+
validate_using!(Config.schema)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
private
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
def validate_using!(validator)
|
|
14
|
+
if validator
|
|
15
|
+
result = validator.call(to_hash)
|
|
16
|
+
|
|
17
|
+
return if result.success?
|
|
18
|
+
|
|
19
|
+
error = Config::Validation::Error.format(result)
|
|
20
|
+
raise Config::Validation::Error, "Config validation failed:\n\n#{error}"
|
|
15
21
|
end
|
|
16
22
|
end
|
|
17
|
-
|
|
18
23
|
end
|
|
19
24
|
end
|
|
20
25
|
end
|
data/lib/config/version.rb
CHANGED
|
@@ -21,7 +21,12 @@ Config.setup do |config|
|
|
|
21
21
|
|
|
22
22
|
# Define ENV variable prefix deciding which variables to load into config.
|
|
23
23
|
#
|
|
24
|
-
#
|
|
24
|
+
# Reading variables from ENV is case-sensitive. If you define lowercase value below, ensure your ENV variables are
|
|
25
|
+
# prefixed in the same way.
|
|
26
|
+
#
|
|
27
|
+
# When not set it defaults to `config.const_name`.
|
|
28
|
+
#
|
|
29
|
+
config.env_prefix = 'SETTINGS'
|
|
25
30
|
|
|
26
31
|
# What string to use as level separator for settings loaded from ENV variables. Default value of '.' works well
|
|
27
32
|
# with Heroku, but you might want to change it for example for '__' to easy override settings from command line, where
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: config
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.2.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Piotr Kuczynski
|
|
8
8
|
- Fred Wu
|
|
9
9
|
- Jacques Crocker
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: deep_merge
|
|
@@ -32,31 +32,14 @@ dependencies:
|
|
|
32
32
|
- - ">="
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
34
|
version: 1.2.1
|
|
35
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
-
name: activesupport
|
|
37
|
-
requirement: !ruby/object:Gem::Requirement
|
|
38
|
-
requirements:
|
|
39
|
-
- - ">="
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
version: '3.0'
|
|
42
|
-
type: :runtime
|
|
43
|
-
prerelease: false
|
|
44
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
45
|
-
requirements:
|
|
46
|
-
- - ">="
|
|
47
|
-
- !ruby/object:Gem::Version
|
|
48
|
-
version: '3.0'
|
|
49
35
|
- !ruby/object:Gem::Dependency
|
|
50
36
|
name: dry-validation
|
|
51
37
|
requirement: !ruby/object:Gem::Requirement
|
|
52
38
|
requirements:
|
|
53
39
|
- - "~>"
|
|
54
40
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '0
|
|
41
|
+
version: '1.0'
|
|
56
42
|
- - ">="
|
|
57
|
-
- !ruby/object:Gem::Version
|
|
58
|
-
version: 0.12.2
|
|
59
|
-
- - "<"
|
|
60
43
|
- !ruby/object:Gem::Version
|
|
61
44
|
version: 1.0.0
|
|
62
45
|
type: :runtime
|
|
@@ -65,113 +48,98 @@ dependencies:
|
|
|
65
48
|
requirements:
|
|
66
49
|
- - "~>"
|
|
67
50
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0
|
|
51
|
+
version: '1.0'
|
|
69
52
|
- - ">="
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: 0.12.2
|
|
72
|
-
- - "<"
|
|
73
53
|
- !ruby/object:Gem::Version
|
|
74
54
|
version: 1.0.0
|
|
75
55
|
- !ruby/object:Gem::Dependency
|
|
76
|
-
name:
|
|
56
|
+
name: rake
|
|
77
57
|
requirement: !ruby/object:Gem::Requirement
|
|
78
58
|
requirements:
|
|
79
59
|
- - "~>"
|
|
80
60
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '
|
|
61
|
+
version: '12.0'
|
|
82
62
|
- - ">="
|
|
83
63
|
- !ruby/object:Gem::Version
|
|
84
|
-
version:
|
|
64
|
+
version: 12.0.0
|
|
85
65
|
type: :development
|
|
86
66
|
prerelease: false
|
|
87
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
88
68
|
requirements:
|
|
89
69
|
- - "~>"
|
|
90
70
|
- !ruby/object:Gem::Version
|
|
91
|
-
version: '
|
|
71
|
+
version: '12.0'
|
|
92
72
|
- - ">="
|
|
93
73
|
- !ruby/object:Gem::Version
|
|
94
|
-
version:
|
|
74
|
+
version: 12.0.0
|
|
95
75
|
- !ruby/object:Gem::Dependency
|
|
96
|
-
name:
|
|
76
|
+
name: appraisal
|
|
97
77
|
requirement: !ruby/object:Gem::Requirement
|
|
98
78
|
requirements:
|
|
99
79
|
- - "~>"
|
|
100
80
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: '
|
|
81
|
+
version: '2.3'
|
|
102
82
|
- - ">="
|
|
103
83
|
- !ruby/object:Gem::Version
|
|
104
|
-
version:
|
|
84
|
+
version: 2.3.0
|
|
105
85
|
type: :development
|
|
106
86
|
prerelease: false
|
|
107
87
|
version_requirements: !ruby/object:Gem::Requirement
|
|
108
88
|
requirements:
|
|
109
89
|
- - "~>"
|
|
110
90
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: '
|
|
91
|
+
version: '2.3'
|
|
112
92
|
- - ">="
|
|
113
93
|
- !ruby/object:Gem::Version
|
|
114
|
-
version:
|
|
94
|
+
version: 2.3.0
|
|
115
95
|
- !ruby/object:Gem::Dependency
|
|
116
|
-
name:
|
|
96
|
+
name: rspec
|
|
117
97
|
requirement: !ruby/object:Gem::Requirement
|
|
118
98
|
requirements:
|
|
119
|
-
- - ">="
|
|
120
|
-
- !ruby/object:Gem::Version
|
|
121
|
-
version: 12.0.0
|
|
122
99
|
- - "~>"
|
|
123
100
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
101
|
+
version: '3.9'
|
|
102
|
+
- - ">="
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: 3.9.0
|
|
125
105
|
type: :development
|
|
126
106
|
prerelease: false
|
|
127
107
|
version_requirements: !ruby/object:Gem::Requirement
|
|
128
108
|
requirements:
|
|
129
|
-
- - ">="
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 12.0.0
|
|
132
109
|
- - "~>"
|
|
133
110
|
- !ruby/object:Gem::Version
|
|
134
|
-
version: '
|
|
111
|
+
version: '3.9'
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: 3.9.0
|
|
135
115
|
- !ruby/object:Gem::Dependency
|
|
136
|
-
name:
|
|
116
|
+
name: bootsnap
|
|
137
117
|
requirement: !ruby/object:Gem::Requirement
|
|
138
118
|
requirements:
|
|
139
|
-
- - ">="
|
|
140
|
-
- !ruby/object:Gem::Version
|
|
141
|
-
version: 2.2.0
|
|
142
119
|
- - "~>"
|
|
143
120
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
121
|
+
version: '1.4'
|
|
145
122
|
type: :development
|
|
146
123
|
prerelease: false
|
|
147
124
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
125
|
requirements:
|
|
149
|
-
- - ">="
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: 2.2.0
|
|
152
126
|
- - "~>"
|
|
153
127
|
- !ruby/object:Gem::Version
|
|
154
|
-
version: '
|
|
128
|
+
version: '1.4'
|
|
155
129
|
- !ruby/object:Gem::Dependency
|
|
156
|
-
name:
|
|
130
|
+
name: rails
|
|
157
131
|
requirement: !ruby/object:Gem::Requirement
|
|
158
132
|
requirements:
|
|
159
|
-
- -
|
|
133
|
+
- - '='
|
|
160
134
|
- !ruby/object:Gem::Version
|
|
161
|
-
version: 3.
|
|
162
|
-
- - "~>"
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
version: '3.7'
|
|
135
|
+
version: 6.0.3.1
|
|
165
136
|
type: :development
|
|
166
137
|
prerelease: false
|
|
167
138
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
139
|
requirements:
|
|
169
|
-
- -
|
|
140
|
+
- - '='
|
|
170
141
|
- !ruby/object:Gem::Version
|
|
171
|
-
version: 3.
|
|
172
|
-
- - "~>"
|
|
173
|
-
- !ruby/object:Gem::Version
|
|
174
|
-
version: '3.7'
|
|
142
|
+
version: 6.0.3.1
|
|
175
143
|
- !ruby/object:Gem::Dependency
|
|
176
144
|
name: rspec-rails
|
|
177
145
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -179,9 +147,6 @@ dependencies:
|
|
|
179
147
|
- - "~>"
|
|
180
148
|
- !ruby/object:Gem::Version
|
|
181
149
|
version: '3.7'
|
|
182
|
-
- - ">="
|
|
183
|
-
- !ruby/object:Gem::Version
|
|
184
|
-
version: 3.7.2
|
|
185
150
|
type: :development
|
|
186
151
|
prerelease: false
|
|
187
152
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -189,83 +154,40 @@ dependencies:
|
|
|
189
154
|
- - "~>"
|
|
190
155
|
- !ruby/object:Gem::Version
|
|
191
156
|
version: '3.7'
|
|
192
|
-
- - ">="
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: 3.7.2
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: test-unit
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - "~>"
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: '3.2'
|
|
202
|
-
- - ">="
|
|
203
|
-
- !ruby/object:Gem::Version
|
|
204
|
-
version: 3.2.7
|
|
205
|
-
type: :development
|
|
206
|
-
prerelease: false
|
|
207
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
208
|
-
requirements:
|
|
209
|
-
- - "~>"
|
|
210
|
-
- !ruby/object:Gem::Version
|
|
211
|
-
version: '3.2'
|
|
212
|
-
- - ">="
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: 3.2.7
|
|
215
157
|
- !ruby/object:Gem::Dependency
|
|
216
|
-
name:
|
|
158
|
+
name: mdl
|
|
217
159
|
requirement: !ruby/object:Gem::Requirement
|
|
218
160
|
requirements:
|
|
219
161
|
- - "~>"
|
|
220
162
|
- !ruby/object:Gem::Version
|
|
221
|
-
version: '
|
|
163
|
+
version: '0.9'
|
|
222
164
|
- - ">="
|
|
223
165
|
- !ruby/object:Gem::Version
|
|
224
|
-
version:
|
|
166
|
+
version: 0.9.0
|
|
225
167
|
type: :development
|
|
226
168
|
prerelease: false
|
|
227
169
|
version_requirements: !ruby/object:Gem::Requirement
|
|
228
170
|
requirements:
|
|
229
171
|
- - "~>"
|
|
230
172
|
- !ruby/object:Gem::Version
|
|
231
|
-
version: '
|
|
232
|
-
- - ">="
|
|
233
|
-
- !ruby/object:Gem::Version
|
|
234
|
-
version: 1.3.13
|
|
235
|
-
- !ruby/object:Gem::Dependency
|
|
236
|
-
name: mdl
|
|
237
|
-
requirement: !ruby/object:Gem::Requirement
|
|
238
|
-
requirements:
|
|
173
|
+
version: '0.9'
|
|
239
174
|
- - ">="
|
|
240
175
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: 0.
|
|
242
|
-
- - "~>"
|
|
243
|
-
- !ruby/object:Gem::Version
|
|
244
|
-
version: '0.5'
|
|
245
|
-
type: :development
|
|
246
|
-
prerelease: false
|
|
247
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
248
|
-
requirements:
|
|
249
|
-
- - ">="
|
|
250
|
-
- !ruby/object:Gem::Version
|
|
251
|
-
version: 0.5.0
|
|
252
|
-
- - "~>"
|
|
253
|
-
- !ruby/object:Gem::Version
|
|
254
|
-
version: '0.5'
|
|
176
|
+
version: 0.9.0
|
|
255
177
|
- !ruby/object:Gem::Dependency
|
|
256
178
|
name: rubocop
|
|
257
179
|
requirement: !ruby/object:Gem::Requirement
|
|
258
180
|
requirements:
|
|
259
181
|
- - "~>"
|
|
260
182
|
- !ruby/object:Gem::Version
|
|
261
|
-
version:
|
|
183
|
+
version: 0.85.0
|
|
262
184
|
type: :development
|
|
263
185
|
prerelease: false
|
|
264
186
|
version_requirements: !ruby/object:Gem::Requirement
|
|
265
187
|
requirements:
|
|
266
188
|
- - "~>"
|
|
267
189
|
- !ruby/object:Gem::Version
|
|
268
|
-
version:
|
|
190
|
+
version: 0.85.0
|
|
269
191
|
description: 'Easiest way to manage multi-environment settings in any ruby project
|
|
270
192
|
or framework: Rails, Sinatra, Pandrino and others'
|
|
271
193
|
email:
|
|
@@ -277,16 +199,18 @@ extensions: []
|
|
|
277
199
|
extra_rdoc_files:
|
|
278
200
|
- README.md
|
|
279
201
|
- CHANGELOG.md
|
|
202
|
+
- CONTRIBUTING.md
|
|
280
203
|
- LICENSE.md
|
|
281
204
|
files:
|
|
282
205
|
- CHANGELOG.md
|
|
206
|
+
- CONTRIBUTING.md
|
|
283
207
|
- LICENSE.md
|
|
284
208
|
- README.md
|
|
285
209
|
- config.gemspec
|
|
286
210
|
- lib/config.rb
|
|
287
211
|
- lib/config/compatibility.rb
|
|
212
|
+
- lib/config/configuration.rb
|
|
288
213
|
- lib/config/integrations/heroku.rb
|
|
289
|
-
- lib/config/integrations/rails/engine.rb
|
|
290
214
|
- lib/config/integrations/rails/railtie.rb
|
|
291
215
|
- lib/config/integrations/sinatra.rb
|
|
292
216
|
- lib/config/options.rb
|
|
@@ -305,14 +229,12 @@ files:
|
|
|
305
229
|
- lib/generators/config/templates/settings/development.yml
|
|
306
230
|
- lib/generators/config/templates/settings/production.yml
|
|
307
231
|
- lib/generators/config/templates/settings/test.yml
|
|
308
|
-
|
|
309
|
-
- spec/app/rails_5.2/README.md
|
|
310
|
-
- spec/app/rails_5/README.md
|
|
311
|
-
homepage: https://github.com/railsconfig/config
|
|
232
|
+
homepage: https://github.com/rubyconfig/config
|
|
312
233
|
licenses:
|
|
313
234
|
- MIT
|
|
314
235
|
metadata: {}
|
|
315
|
-
post_install_message:
|
|
236
|
+
post_install_message: "\n\e[33mThanks for installing Config\e[0m\nPlease consider
|
|
237
|
+
donating to our open collective to help us maintain this project.\n\n\nDonate: \e[34mhttps://opencollective.com/rubyconfig/donate\e[0m\n"
|
|
316
238
|
rdoc_options:
|
|
317
239
|
- "--charset=UTF-8"
|
|
318
240
|
require_paths:
|
|
@@ -321,15 +243,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
321
243
|
requirements:
|
|
322
244
|
- - ">="
|
|
323
245
|
- !ruby/object:Gem::Version
|
|
324
|
-
version: 2.
|
|
246
|
+
version: 2.4.0
|
|
325
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
248
|
requirements:
|
|
327
249
|
- - ">="
|
|
328
250
|
- !ruby/object:Gem::Version
|
|
329
251
|
version: '0'
|
|
330
252
|
requirements: []
|
|
331
|
-
rubygems_version: 3.
|
|
332
|
-
signing_key:
|
|
253
|
+
rubygems_version: 3.1.2
|
|
254
|
+
signing_key:
|
|
333
255
|
specification_version: 4
|
|
334
256
|
summary: Effortless multi-environment settings in Rails, Sinatra, Pandrino and others
|
|
335
257
|
test_files: []
|