config 1.7.1 → 2.2.2

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.
@@ -7,51 +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(piotr.kuczynski@gmail.com ifredwu@gmail.com railsjedi@gmail.com)
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/railsconfig/config'
14
+ s.homepage = 'https://github.com/rubyconfig/config'
15
15
  s.license = 'MIT'
16
- s.extra_rdoc_files = %w(README.md CHANGELOG.md LICENSE.md)
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\/|\.md$|\.gemspec$)/ =~ file }
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.0.0'
27
+ s.required_ruby_version = '>= 2.4.0'
25
28
 
26
- s.add_dependency 'activesupport', '>= 3.0'
27
- s.add_dependency 'deep_merge', '~> 1.2.1'
29
+ s.add_dependency 'deep_merge', '~> 1.2', '>= 1.2.1'
30
+ s.add_dependency 'dry-validation', '~> 1.0', '>= 1.0.0'
28
31
 
29
- s.add_dependency 'dry-validation', '>= 0.10.7' if RUBY_VERSION >= '2.1' && RUBY_VERSION < '2.2'
30
- s.add_dependency 'dry-validation', '>= 0.12.2' if RUBY_VERSION >= '2.2'
31
-
32
- s.add_development_dependency 'bundler', '~> 1.13', '>= 1.13.6'
33
- s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
32
+ s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
34
33
 
35
34
  # Testing
36
- s.add_development_dependency 'appraisal', '~> 2.2', '>= 2.2.0'
37
- s.add_development_dependency 'rails', '~> 5.2', '>= 5.2.2'
38
- s.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
39
- s.add_development_dependency 'rspec-rails', '~> 3.7', '>= 3.7.2'
40
- s.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.7'
41
- s.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.13'
42
-
43
- # Static code analysis
44
- s.add_development_dependency 'mdl', '~> 0.5', '>= 0.5.0'
45
-
46
- # Version 0.51 drops support for Ruby 2.0
47
- s.add_development_dependency 'rubocop', '~> 0.50', '< 0.51' if RUBY_VERSION < '2.1'
48
- # Version 0.58 drops support for Ruby 2.1
49
- s.add_development_dependency 'rubocop', '~> 0.57', '< 0.58' if RUBY_VERSION >= '2.1' && RUBY_VERSION < '2.2'
50
- # Version 0.62 requires Ruby 2.2
51
- s.add_development_dependency 'rubocop', '~> 0.62' if RUBY_VERSION >= '2.2'
52
-
53
- if ENV['TRAVIS']
54
- s.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.9'
55
- s.add_development_dependency 'simplecov', '~> 0.13.0'
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'
56
53
  end
57
54
  end
@@ -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' if RUBY_VERSION >= '2.1'
7
+ require 'config/validation/schema'
10
8
  require 'deep_merge'
11
9
 
12
10
  module Config
13
- extend Config::Validation::Schema if RUBY_VERSION >= '2.1'
14
-
15
- # Ensures the setup only gets run once
16
- @@_ran_once = false
17
-
18
- mattr_accessor :const_name, :use_env, :env_prefix, :env_separator,
19
- :env_converter, :env_parse_values, :fail_on_missing
20
- @@const_name = 'Settings'
21
- @@use_env = false
22
- @@env_prefix = @@const_name
23
- @@env_separator = '.'
24
- @@env_converter = :downcase
25
- @@env_parse_values = true
26
- @@fail_on_missing = false
27
-
28
- # deep_merge options
29
- mattr_accessor :knockout_prefix, :merge_nil_values, :overwrite_arrays
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 if @@_ran_once == false
36
- @@_ran_once = true
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
- Kernel.send(:remove_const, Config.const_name) if Kernel.const_defined?(Config.const_name)
57
- Kernel.const_set(Config.const_name, Config.load_files(files))
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, "settings.yml").to_s,
63
- File.join(config_root, "settings", "#{env}.yml").to_s,
64
- File.join(config_root, "environments", "#{env}.yml").to_s,
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
- Kernel.const_get(Config.const_name).reload!
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
- ActionController::Base.class_eval do
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
@@ -1,10 +1,10 @@
1
1
  require 'ostruct'
2
- require 'config/validation/validate' if RUBY_VERSION >= '2.1'
2
+ require 'config/validation/validate'
3
3
 
4
4
  module Config
5
5
  class Options < OpenStruct
6
6
  include Enumerable
7
- include Validation::Validate if RUBY_VERSION >= '2.1'
7
+ include Validation::Validate
8
8
 
9
9
  def keys
10
10
  marshal_dump.keys
@@ -82,7 +82,8 @@ module Config
82
82
  preserve_unmergeables: false,
83
83
  knockout_prefix: Config.knockout_prefix,
84
84
  overwrite_arrays: Config.overwrite_arrays,
85
- merge_nil_values: Config.merge_nil_values
85
+ merge_nil_values: Config.merge_nil_values,
86
+ merge_hash_arrays: Config.merge_hash_arrays
86
87
  )
87
88
  end
88
89
  end
@@ -91,7 +92,7 @@ module Config
91
92
  marshal_load(__convert(conf).marshal_dump)
92
93
 
93
94
  reload_env! if Config.use_env
94
- validate! if RUBY_VERSION >= '2.1'
95
+ validate!
95
96
 
96
97
  self
97
98
  end
@@ -117,6 +118,8 @@ module Config
117
118
  result
118
119
  end
119
120
 
121
+ alias :to_h :to_hash
122
+
120
123
  def each(*args, &block)
121
124
  marshal_dump.each(*args, &block)
122
125
  end
@@ -126,6 +129,10 @@ module Config
126
129
  to_hash.to_json(*args)
127
130
  end
128
131
 
132
+ def as_json(options = nil)
133
+ to_hash.as_json(options)
134
+ end
135
+
129
136
  def merge!(hash)
130
137
  current = to_hash
131
138
  DeepMerge.deep_merge!(
@@ -134,14 +141,15 @@ module Config
134
141
  preserve_unmergeables: false,
135
142
  knockout_prefix: Config.knockout_prefix,
136
143
  overwrite_arrays: Config.overwrite_arrays,
137
- merge_nil_values: Config.merge_nil_values
144
+ merge_nil_values: Config.merge_nil_values,
145
+ merge_hash_arrays: Config.merge_hash_arrays
138
146
  )
139
147
  marshal_load(__convert(current).marshal_dump)
140
148
  self
141
149
  end
142
150
 
143
151
  # Some keywords that don't play nicely with OpenStruct
144
- SETTINGS_RESERVED_NAMES = %w[select collect test count zip].freeze
152
+ SETTINGS_RESERVED_NAMES = %w[select collect test count zip min max exit!].freeze
145
153
 
146
154
  # An alternative mechanism for property access.
147
155
  # This let's you do foo['bar'] along with foo.bar.
@@ -199,7 +207,6 @@ module Config
199
207
 
200
208
  h.each do |k, v|
201
209
  k = k.to_s if !k.respond_to?(:to_sym) && k.respond_to?(:to_s)
202
- s.new_ostruct_member(k)
203
210
 
204
211
  if v.is_a?(Hash)
205
212
  v = v["type"] == "hash" ? v["contents"] : __convert(v)
@@ -207,7 +214,7 @@ module Config
207
214
  v = v.collect { |e| e.instance_of?(Hash) ? __convert(e) : e }
208
215
  end
209
216
 
210
- s.send("#{k}=".to_sym, v)
217
+ s[k] = v
211
218
  end
212
219
  s
213
220
  end
@@ -3,20 +3,9 @@ module Config
3
3
  class Error < StandardError
4
4
 
5
5
  def self.format(v_res)
6
- flatten_hash(v_res.messages).map do |field, msgs|
7
- "#{' ' * 2}#{field}: #{msgs.join('; ')}"
8
- end.join('\n')
9
- end
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
6
+ v_res.errors.group_by(&:path).map do |path, messages|
7
+ "#{' ' * 2}#{path.join('.')}: #{messages.map(&:text).join('; ')}"
8
+ end.join("\n")
20
9
  end
21
10
 
22
11
  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
- mattr_writer :schema
9
- @@schema = nil
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
- @@schema = Dry::Validation.Schema(&block)
11
+ # Delay require until optional schema validation is requested
12
+ require 'dry-validation'
13
+ @schema = Dry::Schema.define(&block)
14
14
  else
15
- @@schema
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
- if Config.schema
9
- v_res = Config.schema.(self.to_hash)
7
+ validate_using!(Config.validation_contract)
8
+ validate_using!(Config.schema)
9
+ end
10
+
11
+ private
10
12
 
11
- unless v_res.success?
12
- error = Config::Validation::Error.format(v_res)
13
- raise Config::Validation::Error.new("Config validation failed:\n\n#{error}")
14
- end
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
@@ -1,3 +1,3 @@
1
1
  module Config
2
- VERSION = '1.7.1'
2
+ VERSION = '2.2.2'.freeze
3
3
  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
- # config.env_prefix = 'Settings'
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,36 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 2.2.2
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: 2019-01-02 00:00:00.000000000 Z
13
+ date: 2020-12-08 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: '3.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: '3.0'
29
15
  - !ruby/object:Gem::Dependency
30
16
  name: deep_merge
31
17
  requirement: !ruby/object:Gem::Requirement
32
18
  requirements:
33
19
  - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.2'
22
+ - - ">="
34
23
  - !ruby/object:Gem::Version
35
24
  version: 1.2.1
36
25
  type: :runtime
@@ -39,215 +28,166 @@ dependencies:
39
28
  requirements:
40
29
  - - "~>"
41
30
  - !ruby/object:Gem::Version
42
- version: 1.2.1
43
- - !ruby/object:Gem::Dependency
44
- name: dry-validation
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 0.12.2
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
31
+ version: '1.2'
54
32
  - - ">="
55
33
  - !ruby/object:Gem::Version
56
- version: 0.12.2
34
+ version: 1.2.1
57
35
  - !ruby/object:Gem::Dependency
58
- name: bundler
36
+ name: dry-validation
59
37
  requirement: !ruby/object:Gem::Requirement
60
38
  requirements:
61
39
  - - "~>"
62
40
  - !ruby/object:Gem::Version
63
- version: '1.13'
41
+ version: '1.0'
64
42
  - - ">="
65
43
  - !ruby/object:Gem::Version
66
- version: 1.13.6
67
- type: :development
44
+ version: 1.0.0
45
+ type: :runtime
68
46
  prerelease: false
69
47
  version_requirements: !ruby/object:Gem::Requirement
70
48
  requirements:
71
49
  - - "~>"
72
50
  - !ruby/object:Gem::Version
73
- version: '1.13'
51
+ version: '1.0'
74
52
  - - ">="
75
53
  - !ruby/object:Gem::Version
76
- version: 1.13.6
54
+ version: 1.0.0
77
55
  - !ruby/object:Gem::Dependency
78
56
  name: rake
79
57
  requirement: !ruby/object:Gem::Requirement
80
58
  requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: 12.0.0
84
59
  - - "~>"
85
60
  - !ruby/object:Gem::Version
86
61
  version: '12.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 12.0.0
87
65
  type: :development
88
66
  prerelease: false
89
67
  version_requirements: !ruby/object:Gem::Requirement
90
68
  requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- version: 12.0.0
94
69
  - - "~>"
95
70
  - !ruby/object:Gem::Version
96
71
  version: '12.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 12.0.0
97
75
  - !ruby/object:Gem::Dependency
98
76
  name: appraisal
99
77
  requirement: !ruby/object:Gem::Requirement
100
78
  requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 2.2.0
104
79
  - - "~>"
105
80
  - !ruby/object:Gem::Version
106
- version: '2.2'
81
+ version: '2.3'
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 2.3.0
107
85
  type: :development
108
86
  prerelease: false
109
87
  version_requirements: !ruby/object:Gem::Requirement
110
88
  requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 2.2.0
114
89
  - - "~>"
115
90
  - !ruby/object:Gem::Version
116
- version: '2.2'
91
+ version: '2.3'
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 2.3.0
117
95
  - !ruby/object:Gem::Dependency
118
- name: rails
96
+ name: rspec
119
97
  requirement: !ruby/object:Gem::Requirement
120
98
  requirements:
121
99
  - - "~>"
122
100
  - !ruby/object:Gem::Version
123
- version: '5.2'
101
+ version: '3.9'
124
102
  - - ">="
125
103
  - !ruby/object:Gem::Version
126
- version: 5.2.2
104
+ version: 3.9.0
127
105
  type: :development
128
106
  prerelease: false
129
107
  version_requirements: !ruby/object:Gem::Requirement
130
108
  requirements:
131
109
  - - "~>"
132
110
  - !ruby/object:Gem::Version
133
- version: '5.2'
111
+ version: '3.9'
134
112
  - - ">="
135
113
  - !ruby/object:Gem::Version
136
- version: 5.2.2
114
+ version: 3.9.0
137
115
  - !ruby/object:Gem::Dependency
138
- name: rspec
116
+ name: bootsnap
139
117
  requirement: !ruby/object:Gem::Requirement
140
118
  requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: 3.7.0
144
119
  - - "~>"
145
120
  - !ruby/object:Gem::Version
146
- version: '3.7'
121
+ version: '1.4'
147
122
  type: :development
148
123
  prerelease: false
149
124
  version_requirements: !ruby/object:Gem::Requirement
150
125
  requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: 3.7.0
154
126
  - - "~>"
155
127
  - !ruby/object:Gem::Version
156
- version: '3.7'
128
+ version: '1.4'
157
129
  - !ruby/object:Gem::Dependency
158
- name: rspec-rails
130
+ name: rails
159
131
  requirement: !ruby/object:Gem::Requirement
160
132
  requirements:
161
- - - "~>"
162
- - !ruby/object:Gem::Version
163
- version: '3.7'
164
- - - ">="
133
+ - - '='
165
134
  - !ruby/object:Gem::Version
166
- version: 3.7.2
135
+ version: 6.0.3.1
167
136
  type: :development
168
137
  prerelease: false
169
138
  version_requirements: !ruby/object:Gem::Requirement
170
139
  requirements:
171
- - - "~>"
140
+ - - '='
172
141
  - !ruby/object:Gem::Version
173
- version: '3.7'
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: 3.7.2
142
+ version: 6.0.3.1
177
143
  - !ruby/object:Gem::Dependency
178
- name: test-unit
144
+ name: rspec-rails
179
145
  requirement: !ruby/object:Gem::Requirement
180
146
  requirements:
181
147
  - - "~>"
182
148
  - !ruby/object:Gem::Version
183
- version: '3.2'
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: 3.2.7
149
+ version: '3.7'
187
150
  type: :development
188
151
  prerelease: false
189
152
  version_requirements: !ruby/object:Gem::Requirement
190
153
  requirements:
191
154
  - - "~>"
192
155
  - !ruby/object:Gem::Version
193
- version: '3.2'
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: 3.2.7
156
+ version: '3.7'
197
157
  - !ruby/object:Gem::Dependency
198
- name: sqlite3
158
+ name: mdl
199
159
  requirement: !ruby/object:Gem::Requirement
200
160
  requirements:
201
161
  - - "~>"
202
162
  - !ruby/object:Gem::Version
203
- version: '1.3'
163
+ version: '0.9'
204
164
  - - ">="
205
165
  - !ruby/object:Gem::Version
206
- version: 1.3.13
166
+ version: 0.9.0
207
167
  type: :development
208
168
  prerelease: false
209
169
  version_requirements: !ruby/object:Gem::Requirement
210
170
  requirements:
211
171
  - - "~>"
212
172
  - !ruby/object:Gem::Version
213
- version: '1.3'
214
- - - ">="
215
- - !ruby/object:Gem::Version
216
- version: 1.3.13
217
- - !ruby/object:Gem::Dependency
218
- name: mdl
219
- requirement: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - ">="
222
- - !ruby/object:Gem::Version
223
- version: 0.5.0
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '0.5'
227
- type: :development
228
- prerelease: false
229
- version_requirements: !ruby/object:Gem::Requirement
230
- requirements:
173
+ version: '0.9'
231
174
  - - ">="
232
175
  - !ruby/object:Gem::Version
233
- version: 0.5.0
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '0.5'
176
+ version: 0.9.0
237
177
  - !ruby/object:Gem::Dependency
238
178
  name: rubocop
239
179
  requirement: !ruby/object:Gem::Requirement
240
180
  requirements:
241
181
  - - "~>"
242
182
  - !ruby/object:Gem::Version
243
- version: '0.62'
183
+ version: 0.85.0
244
184
  type: :development
245
185
  prerelease: false
246
186
  version_requirements: !ruby/object:Gem::Requirement
247
187
  requirements:
248
188
  - - "~>"
249
189
  - !ruby/object:Gem::Version
250
- version: '0.62'
190
+ version: 0.85.0
251
191
  description: 'Easiest way to manage multi-environment settings in any ruby project
252
192
  or framework: Rails, Sinatra, Pandrino and others'
253
193
  email:
@@ -259,16 +199,18 @@ extensions: []
259
199
  extra_rdoc_files:
260
200
  - README.md
261
201
  - CHANGELOG.md
202
+ - CONTRIBUTING.md
262
203
  - LICENSE.md
263
204
  files:
264
205
  - CHANGELOG.md
206
+ - CONTRIBUTING.md
265
207
  - LICENSE.md
266
208
  - README.md
267
209
  - config.gemspec
268
210
  - lib/config.rb
269
211
  - lib/config/compatibility.rb
212
+ - lib/config/configuration.rb
270
213
  - lib/config/integrations/heroku.rb
271
- - lib/config/integrations/rails/engine.rb
272
214
  - lib/config/integrations/rails/railtie.rb
273
215
  - lib/config/integrations/sinatra.rb
274
216
  - lib/config/options.rb
@@ -287,14 +229,12 @@ files:
287
229
  - lib/generators/config/templates/settings/development.yml
288
230
  - lib/generators/config/templates/settings/production.yml
289
231
  - lib/generators/config/templates/settings/test.yml
290
- - spec/app/rails_5.1/README.md
291
- - spec/app/rails_5.2/README.md
292
- - spec/app/rails_5/README.md
293
- homepage: https://github.com/railsconfig/config
232
+ homepage: https://github.com/rubyconfig/config
294
233
  licenses:
295
234
  - MIT
296
235
  metadata: {}
297
- 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"
298
238
  rdoc_options:
299
239
  - "--charset=UTF-8"
300
240
  require_paths:
@@ -303,16 +243,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
303
243
  requirements:
304
244
  - - ">="
305
245
  - !ruby/object:Gem::Version
306
- version: 2.0.0
246
+ version: 2.4.0
307
247
  required_rubygems_version: !ruby/object:Gem::Requirement
308
248
  requirements:
309
249
  - - ">="
310
250
  - !ruby/object:Gem::Version
311
251
  version: '0'
312
252
  requirements: []
313
- rubyforge_project:
314
- rubygems_version: 2.7.8
315
- signing_key:
253
+ rubygems_version: 3.1.2
254
+ signing_key:
316
255
  specification_version: 4
317
256
  summary: Effortless multi-environment settings in Rails, Sinatra, Pandrino and others
318
257
  test_files: []