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.
@@ -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(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
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
- if RUBY_VERSION >= '2.2'
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', '~> 2.2', '>= 2.2.0'
50
- s.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
51
- s.add_development_dependency 'rspec-rails', '~> 3.7', '>= 3.7.2'
52
- s.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.7'
53
- s.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.13'
54
-
55
- # Static code analysis
56
- s.add_development_dependency 'mdl', '~> 0.5', '>= 0.5.0'
57
-
58
- # Version 0.51 drops support for Ruby 2.0
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['TRAVIS']
66
- s.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.9'
67
- s.add_development_dependency 'simplecov', '~> 0.13.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
@@ -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
@@ -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! if RUBY_VERSION >= '2.1'
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.send("#{k}=".to_sym, v)
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
- flatten_hash(v_res.messages).map do |field, msgs|
7
- "#{' ' * 2}#{field}: #{msgs.join('; ')}"
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
- 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.2'.freeze
2
+ VERSION = '2.2.3'.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,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.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: 2019-06-13 00:00:00.000000000 Z
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.12'
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.12'
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: rails
56
+ name: rake
77
57
  requirement: !ruby/object:Gem::Requirement
78
58
  requirements:
79
59
  - - "~>"
80
60
  - !ruby/object:Gem::Version
81
- version: '5.2'
61
+ version: '12.0'
82
62
  - - ">="
83
63
  - !ruby/object:Gem::Version
84
- version: 5.2.2
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: '5.2'
71
+ version: '12.0'
92
72
  - - ">="
93
73
  - !ruby/object:Gem::Version
94
- version: 5.2.2
74
+ version: 12.0.0
95
75
  - !ruby/object:Gem::Dependency
96
- name: bundler
76
+ name: appraisal
97
77
  requirement: !ruby/object:Gem::Requirement
98
78
  requirements:
99
79
  - - "~>"
100
80
  - !ruby/object:Gem::Version
101
- version: '1.13'
81
+ version: '2.3'
102
82
  - - ">="
103
83
  - !ruby/object:Gem::Version
104
- version: 1.13.6
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: '1.13'
91
+ version: '2.3'
112
92
  - - ">="
113
93
  - !ruby/object:Gem::Version
114
- version: 1.13.6
94
+ version: 2.3.0
115
95
  - !ruby/object:Gem::Dependency
116
- name: rake
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: '12.0'
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: '12.0'
111
+ version: '3.9'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 3.9.0
135
115
  - !ruby/object:Gem::Dependency
136
- name: appraisal
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: '2.2'
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: '2.2'
128
+ version: '1.4'
155
129
  - !ruby/object:Gem::Dependency
156
- name: rspec
130
+ name: rails
157
131
  requirement: !ruby/object:Gem::Requirement
158
132
  requirements:
159
- - - ">="
133
+ - - '='
160
134
  - !ruby/object:Gem::Version
161
- version: 3.7.0
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.7.0
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: sqlite3
158
+ name: mdl
217
159
  requirement: !ruby/object:Gem::Requirement
218
160
  requirements:
219
161
  - - "~>"
220
162
  - !ruby/object:Gem::Version
221
- version: '1.3'
163
+ version: '0.9'
222
164
  - - ">="
223
165
  - !ruby/object:Gem::Version
224
- version: 1.3.13
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: '1.3'
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.5.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: '0.62'
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: '0.62'
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
- - spec/app/rails_5.1/README.md
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.0.0
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.0.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: []