config 2.0.0 → 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 +101 -36
- data/CONTRIBUTING.md +32 -0
- data/README.md +112 -71
- data/config.gemspec +28 -24
- data/lib/config/configuration.rb +36 -0
- data/lib/config/integrations/rails/railtie.rb +1 -1
- data/lib/config/options.rb +11 -3
- 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/config.rb +31 -33
- data/lib/generators/config/templates/config.rb +6 -1
- metadata +55 -101
- data/lib/config/integrations/rails/engine.rb +0 -9
- data/spec/app/rails_5/README.md +0 -24
- data/spec/app/rails_5.1/README.md +0 -24
- data/spec/app/rails_5.2/README.md +0 -24
data/config.gemspec
CHANGED
@@ -7,44 +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
27
|
s.required_ruby_version = '>= 2.4.0'
|
25
28
|
|
26
|
-
s.add_dependency 'activesupport', '>= 4.2'
|
27
29
|
s.add_dependency 'deep_merge', '~> 1.2', '>= 1.2.1'
|
28
|
-
s.add_dependency 'dry-
|
30
|
+
s.add_dependency 'dry-validation', '~> 1.0', '>= 1.0.0'
|
29
31
|
|
30
|
-
s.add_development_dependency 'rake',
|
32
|
+
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
31
33
|
|
32
34
|
# Testing
|
33
|
-
s.add_development_dependency 'appraisal',
|
34
|
-
s.add_development_dependency '
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
45
|
+
|
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'
|
49
53
|
end
|
50
54
|
end
|
@@ -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
@@ -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
|
|
@@ -127,6 +132,10 @@ module Config
|
|
127
132
|
to_hash.to_json(*args)
|
128
133
|
end
|
129
134
|
|
135
|
+
def as_json(options = nil)
|
136
|
+
to_hash.as_json(options)
|
137
|
+
end
|
138
|
+
|
130
139
|
def merge!(hash)
|
131
140
|
current = to_hash
|
132
141
|
DeepMerge.deep_merge!(
|
@@ -143,7 +152,7 @@ module Config
|
|
143
152
|
end
|
144
153
|
|
145
154
|
# Some keywords that don't play nicely with OpenStruct
|
146
|
-
SETTINGS_RESERVED_NAMES = %w[select collect test count zip].freeze
|
155
|
+
SETTINGS_RESERVED_NAMES = %w[select collect test count zip min max exit!].freeze
|
147
156
|
|
148
157
|
# An alternative mechanism for property access.
|
149
158
|
# This let's you do foo['bar'] along with foo.bar.
|
@@ -201,7 +210,6 @@ module Config
|
|
201
210
|
|
202
211
|
h.each do |k, v|
|
203
212
|
k = k.to_s if !k.respond_to?(:to_sym) && k.respond_to?(:to_s)
|
204
|
-
s.new_ostruct_member(k)
|
205
213
|
|
206
214
|
if v.is_a?(Hash)
|
207
215
|
v = v["type"] == "hash" ? v["contents"] : __convert(v)
|
@@ -209,7 +217,7 @@ module Config
|
|
209
217
|
v = v.collect { |e| e.instance_of?(Hash) ? __convert(e) : e }
|
210
218
|
end
|
211
219
|
|
212
|
-
s
|
220
|
+
s[k] = v
|
213
221
|
end
|
214
222
|
s
|
215
223
|
end
|
@@ -1,21 +1,20 @@
|
|
1
|
-
require 'dry-schema'
|
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
data/lib/config.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
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
7
|
require 'config/validation/schema'
|
@@ -11,30 +9,26 @@ require 'deep_merge'
|
|
11
9
|
|
12
10
|
module Config
|
13
11
|
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
|
33
|
-
@@merge_hash_arrays = false
|
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
|
+
)
|
34
28
|
|
35
29
|
def self.setup
|
36
|
-
yield self
|
37
|
-
|
30
|
+
yield self unless @_ran_once
|
31
|
+
@_ran_once = true
|
38
32
|
end
|
39
33
|
|
40
34
|
# Create a populated Options instance from a settings file. If a second file is given, then the sections of that
|
@@ -48,7 +42,6 @@ module Config
|
|
48
42
|
end
|
49
43
|
|
50
44
|
config.load!
|
51
|
-
config.load_env! if @@use_env
|
52
45
|
config
|
53
46
|
end
|
54
47
|
|
@@ -61,16 +54,21 @@ module Config
|
|
61
54
|
|
62
55
|
def self.setting_files(config_root, env)
|
63
56
|
[
|
64
|
-
File.join(config_root,
|
65
|
-
File.join(config_root,
|
66
|
-
File.join(config_root,
|
67
|
-
|
68
|
-
File.join(config_root, "settings.local.yml").to_s,
|
69
|
-
File.join(config_root, "settings", "#{env}.local.yml").to_s,
|
70
|
-
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)
|
71
61
|
].freeze
|
72
62
|
end
|
73
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
|
+
|
74
72
|
def self.reload!
|
75
73
|
Object.const_get(Config.const_name).reload!
|
76
74
|
end
|
@@ -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,31 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
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
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: activesupport
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - ">="
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '4.2'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
requirements:
|
26
|
-
- - ">="
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '4.2'
|
29
15
|
- !ruby/object:Gem::Dependency
|
30
16
|
name: deep_merge
|
31
17
|
requirement: !ruby/object:Gem::Requirement
|
@@ -47,12 +33,15 @@ dependencies:
|
|
47
33
|
- !ruby/object:Gem::Version
|
48
34
|
version: 1.2.1
|
49
35
|
- !ruby/object:Gem::Dependency
|
50
|
-
name: dry-
|
36
|
+
name: dry-validation
|
51
37
|
requirement: !ruby/object:Gem::Requirement
|
52
38
|
requirements:
|
53
39
|
- - "~>"
|
54
40
|
- !ruby/object:Gem::Version
|
55
41
|
version: '1.0'
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.0.0
|
56
45
|
type: :runtime
|
57
46
|
prerelease: false
|
58
47
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -60,180 +49,145 @@ dependencies:
|
|
60
49
|
- - "~>"
|
61
50
|
- !ruby/object:Gem::Version
|
62
51
|
version: '1.0'
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0
|
63
55
|
- !ruby/object:Gem::Dependency
|
64
56
|
name: rake
|
65
57
|
requirement: !ruby/object:Gem::Requirement
|
66
58
|
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 12.0.0
|
70
59
|
- - "~>"
|
71
60
|
- !ruby/object:Gem::Version
|
72
61
|
version: '12.0'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 12.0.0
|
73
65
|
type: :development
|
74
66
|
prerelease: false
|
75
67
|
version_requirements: !ruby/object:Gem::Requirement
|
76
68
|
requirements:
|
77
|
-
- - ">="
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 12.0.0
|
80
69
|
- - "~>"
|
81
70
|
- !ruby/object:Gem::Version
|
82
71
|
version: '12.0'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 12.0.0
|
83
75
|
- !ruby/object:Gem::Dependency
|
84
76
|
name: appraisal
|
85
77
|
requirement: !ruby/object:Gem::Requirement
|
86
78
|
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 2.2.0
|
90
79
|
- - "~>"
|
91
80
|
- !ruby/object:Gem::Version
|
92
|
-
version: '2.
|
81
|
+
version: '2.3'
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 2.3.0
|
93
85
|
type: :development
|
94
86
|
prerelease: false
|
95
87
|
version_requirements: !ruby/object:Gem::Requirement
|
96
88
|
requirements:
|
97
|
-
- - ">="
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: 2.2.0
|
100
89
|
- - "~>"
|
101
90
|
- !ruby/object:Gem::Version
|
102
|
-
version: '2.
|
91
|
+
version: '2.3'
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 2.3.0
|
103
95
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
96
|
+
name: rspec
|
105
97
|
requirement: !ruby/object:Gem::Requirement
|
106
98
|
requirements:
|
107
99
|
- - "~>"
|
108
100
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
101
|
+
version: '3.9'
|
110
102
|
- - ">="
|
111
103
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
104
|
+
version: 3.9.0
|
113
105
|
type: :development
|
114
106
|
prerelease: false
|
115
107
|
version_requirements: !ruby/object:Gem::Requirement
|
116
108
|
requirements:
|
117
109
|
- - "~>"
|
118
110
|
- !ruby/object:Gem::Version
|
119
|
-
version: '
|
111
|
+
version: '3.9'
|
120
112
|
- - ">="
|
121
113
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
114
|
+
version: 3.9.0
|
123
115
|
- !ruby/object:Gem::Dependency
|
124
|
-
name:
|
116
|
+
name: bootsnap
|
125
117
|
requirement: !ruby/object:Gem::Requirement
|
126
118
|
requirements:
|
127
|
-
- - ">="
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: 3.7.0
|
130
119
|
- - "~>"
|
131
120
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
121
|
+
version: '1.4'
|
133
122
|
type: :development
|
134
123
|
prerelease: false
|
135
124
|
version_requirements: !ruby/object:Gem::Requirement
|
136
125
|
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 3.7.0
|
140
126
|
- - "~>"
|
141
127
|
- !ruby/object:Gem::Version
|
142
|
-
version: '
|
128
|
+
version: '1.4'
|
143
129
|
- !ruby/object:Gem::Dependency
|
144
|
-
name:
|
130
|
+
name: rails
|
145
131
|
requirement: !ruby/object:Gem::Requirement
|
146
132
|
requirements:
|
147
|
-
- -
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '3.7'
|
150
|
-
- - ">="
|
133
|
+
- - '='
|
151
134
|
- !ruby/object:Gem::Version
|
152
|
-
version: 3.
|
135
|
+
version: 6.0.3.1
|
153
136
|
type: :development
|
154
137
|
prerelease: false
|
155
138
|
version_requirements: !ruby/object:Gem::Requirement
|
156
139
|
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '3.7'
|
160
|
-
- - ">="
|
140
|
+
- - '='
|
161
141
|
- !ruby/object:Gem::Version
|
162
|
-
version: 3.
|
142
|
+
version: 6.0.3.1
|
163
143
|
- !ruby/object:Gem::Dependency
|
164
|
-
name:
|
144
|
+
name: rspec-rails
|
165
145
|
requirement: !ruby/object:Gem::Requirement
|
166
146
|
requirements:
|
167
147
|
- - "~>"
|
168
148
|
- !ruby/object:Gem::Version
|
169
|
-
version: '3.
|
170
|
-
- - ">="
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: 3.2.7
|
149
|
+
version: '3.7'
|
173
150
|
type: :development
|
174
151
|
prerelease: false
|
175
152
|
version_requirements: !ruby/object:Gem::Requirement
|
176
153
|
requirements:
|
177
154
|
- - "~>"
|
178
155
|
- !ruby/object:Gem::Version
|
179
|
-
version: '3.
|
180
|
-
- - ">="
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
version: 3.2.7
|
156
|
+
version: '3.7'
|
183
157
|
- !ruby/object:Gem::Dependency
|
184
|
-
name:
|
158
|
+
name: mdl
|
185
159
|
requirement: !ruby/object:Gem::Requirement
|
186
160
|
requirements:
|
187
161
|
- - "~>"
|
188
162
|
- !ruby/object:Gem::Version
|
189
|
-
version: '
|
163
|
+
version: '0.9'
|
190
164
|
- - ">="
|
191
165
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
166
|
+
version: 0.9.0
|
193
167
|
type: :development
|
194
168
|
prerelease: false
|
195
169
|
version_requirements: !ruby/object:Gem::Requirement
|
196
170
|
requirements:
|
197
171
|
- - "~>"
|
198
172
|
- !ruby/object:Gem::Version
|
199
|
-
version: '
|
200
|
-
- - ">="
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: 1.3.13
|
203
|
-
- !ruby/object:Gem::Dependency
|
204
|
-
name: mdl
|
205
|
-
requirement: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
173
|
+
version: '0.9'
|
207
174
|
- - ">="
|
208
175
|
- !ruby/object:Gem::Version
|
209
|
-
version: 0.
|
210
|
-
- - "~>"
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
version: '0.5'
|
213
|
-
type: :development
|
214
|
-
prerelease: false
|
215
|
-
version_requirements: !ruby/object:Gem::Requirement
|
216
|
-
requirements:
|
217
|
-
- - ">="
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: 0.5.0
|
220
|
-
- - "~>"
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0.5'
|
176
|
+
version: 0.9.0
|
223
177
|
- !ruby/object:Gem::Dependency
|
224
178
|
name: rubocop
|
225
179
|
requirement: !ruby/object:Gem::Requirement
|
226
180
|
requirements:
|
227
181
|
- - "~>"
|
228
182
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
183
|
+
version: 0.85.0
|
230
184
|
type: :development
|
231
185
|
prerelease: false
|
232
186
|
version_requirements: !ruby/object:Gem::Requirement
|
233
187
|
requirements:
|
234
188
|
- - "~>"
|
235
189
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
190
|
+
version: 0.85.0
|
237
191
|
description: 'Easiest way to manage multi-environment settings in any ruby project
|
238
192
|
or framework: Rails, Sinatra, Pandrino and others'
|
239
193
|
email:
|
@@ -245,16 +199,18 @@ extensions: []
|
|
245
199
|
extra_rdoc_files:
|
246
200
|
- README.md
|
247
201
|
- CHANGELOG.md
|
202
|
+
- CONTRIBUTING.md
|
248
203
|
- LICENSE.md
|
249
204
|
files:
|
250
205
|
- CHANGELOG.md
|
206
|
+
- CONTRIBUTING.md
|
251
207
|
- LICENSE.md
|
252
208
|
- README.md
|
253
209
|
- config.gemspec
|
254
210
|
- lib/config.rb
|
255
211
|
- lib/config/compatibility.rb
|
212
|
+
- lib/config/configuration.rb
|
256
213
|
- lib/config/integrations/heroku.rb
|
257
|
-
- lib/config/integrations/rails/engine.rb
|
258
214
|
- lib/config/integrations/rails/railtie.rb
|
259
215
|
- lib/config/integrations/sinatra.rb
|
260
216
|
- lib/config/options.rb
|
@@ -273,14 +229,12 @@ files:
|
|
273
229
|
- lib/generators/config/templates/settings/development.yml
|
274
230
|
- lib/generators/config/templates/settings/production.yml
|
275
231
|
- lib/generators/config/templates/settings/test.yml
|
276
|
-
|
277
|
-
- spec/app/rails_5.2/README.md
|
278
|
-
- spec/app/rails_5/README.md
|
279
|
-
homepage: https://github.com/railsconfig/config
|
232
|
+
homepage: https://github.com/rubyconfig/config
|
280
233
|
licenses:
|
281
234
|
- MIT
|
282
235
|
metadata: {}
|
283
|
-
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"
|
284
238
|
rdoc_options:
|
285
239
|
- "--charset=UTF-8"
|
286
240
|
require_paths:
|
@@ -296,8 +250,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
296
250
|
- !ruby/object:Gem::Version
|
297
251
|
version: '0'
|
298
252
|
requirements: []
|
299
|
-
rubygems_version: 3.
|
300
|
-
signing_key:
|
253
|
+
rubygems_version: 3.1.2
|
254
|
+
signing_key:
|
301
255
|
specification_version: 4
|
302
256
|
summary: Effortless multi-environment settings in Rails, Sinatra, Pandrino and others
|
303
257
|
test_files: []
|