configoro 1.4.1 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37579640d17cade2d211b2b2dcc410ee8fb7d8c2fb15412452291fa996593288
4
- data.tar.gz: 6762a81e9c94c8ffae02c8e5d56468da1aec086f6f50b8989f24ec56094076a7
3
+ metadata.gz: b1854c36e4c9ccc3c9553de62ac889716c66ea41dca713440e2c49ff80202c8a
4
+ data.tar.gz: 2bb06b77da453040f408d14166c15288d607fa7e58a3b96f2637ad73b4d68e24
5
5
  SHA512:
6
- metadata.gz: 4bbd10b9f951fca7bfde52c0f3b61bac825cdec675f302c22172e304894177771533382efd2516ec71edacaebfd451efd6adb4cb101cb9a8b66f45fdb681ad16
7
- data.tar.gz: 97be38f588250a8c72dadb085c13f08503a98a987b3bae81e08185922aead297807a3d944f8760df8669bbde00134e65bcc10fdea40fe03767bcb2470845af9a
6
+ metadata.gz: 14add6d5588645408dcbbfb360850ec33c2887b53d24215ea3a5d8171283d698f7276a842e280e8e504d718ea043d388498b3e05096178bff4a5003c53e3846e
7
+ data.tar.gz: 3036db0e3843e4d1989d5f7bbbd95090ac4f195a7bcc0eea2cf154a1f810793d52f7cdbad4cab96e109ed3770798444a8969f68d7ba98054d41a61991ca4afcf
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.0
1
+ 2.7.0
data/Gemfile CHANGED
@@ -10,8 +10,8 @@ group :development do
10
10
  gem 'rspec-its', require: 'rspec/its'
11
11
 
12
12
  # DOCS
13
- gem 'yard'
14
13
  gem 'redcarpet'
14
+ gem 'yard'
15
15
 
16
16
  # LIBRARIES
17
17
  gem 'bundler'
data/Gemfile.lock CHANGED
@@ -1,55 +1,72 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- actioncable (5.1.4)
5
- actionpack (= 5.1.4)
4
+ actioncable (6.0.2.1)
5
+ actionpack (= 6.0.2.1)
6
6
  nio4r (~> 2.0)
7
- websocket-driver (~> 0.6.1)
8
- actionmailer (5.1.4)
9
- actionpack (= 5.1.4)
10
- actionview (= 5.1.4)
11
- activejob (= 5.1.4)
7
+ websocket-driver (>= 0.6.1)
8
+ actionmailbox (6.0.2.1)
9
+ actionpack (= 6.0.2.1)
10
+ activejob (= 6.0.2.1)
11
+ activerecord (= 6.0.2.1)
12
+ activestorage (= 6.0.2.1)
13
+ activesupport (= 6.0.2.1)
14
+ mail (>= 2.7.1)
15
+ actionmailer (6.0.2.1)
16
+ actionpack (= 6.0.2.1)
17
+ actionview (= 6.0.2.1)
18
+ activejob (= 6.0.2.1)
12
19
  mail (~> 2.5, >= 2.5.4)
13
20
  rails-dom-testing (~> 2.0)
14
- actionpack (5.1.4)
15
- actionview (= 5.1.4)
16
- activesupport (= 5.1.4)
17
- rack (~> 2.0)
21
+ actionpack (6.0.2.1)
22
+ actionview (= 6.0.2.1)
23
+ activesupport (= 6.0.2.1)
24
+ rack (~> 2.0, >= 2.0.8)
18
25
  rack-test (>= 0.6.3)
19
26
  rails-dom-testing (~> 2.0)
20
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
21
- actionview (5.1.4)
22
- activesupport (= 5.1.4)
27
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
28
+ actiontext (6.0.2.1)
29
+ actionpack (= 6.0.2.1)
30
+ activerecord (= 6.0.2.1)
31
+ activestorage (= 6.0.2.1)
32
+ activesupport (= 6.0.2.1)
33
+ nokogiri (>= 1.8.5)
34
+ actionview (6.0.2.1)
35
+ activesupport (= 6.0.2.1)
23
36
  builder (~> 3.1)
24
37
  erubi (~> 1.4)
25
38
  rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
27
- activejob (5.1.4)
28
- activesupport (= 5.1.4)
39
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
40
+ activejob (6.0.2.1)
41
+ activesupport (= 6.0.2.1)
29
42
  globalid (>= 0.3.6)
30
- activemodel (5.1.4)
31
- activesupport (= 5.1.4)
32
- activerecord (5.1.4)
33
- activemodel (= 5.1.4)
34
- activesupport (= 5.1.4)
35
- arel (~> 8.0)
36
- activesupport (5.1.4)
43
+ activemodel (6.0.2.1)
44
+ activesupport (= 6.0.2.1)
45
+ activerecord (6.0.2.1)
46
+ activemodel (= 6.0.2.1)
47
+ activesupport (= 6.0.2.1)
48
+ activestorage (6.0.2.1)
49
+ actionpack (= 6.0.2.1)
50
+ activejob (= 6.0.2.1)
51
+ activerecord (= 6.0.2.1)
52
+ marcel (~> 0.3.1)
53
+ activesupport (6.0.2.1)
37
54
  concurrent-ruby (~> 1.0, >= 1.0.2)
38
- i18n (~> 0.7)
55
+ i18n (>= 0.7, < 2)
39
56
  minitest (~> 5.1)
40
57
  tzinfo (~> 1.1)
58
+ zeitwerk (~> 2.2)
41
59
  addressable (2.4.0)
42
- arel (8.0.0)
43
- builder (3.2.3)
44
- concurrent-ruby (1.0.5)
45
- crass (1.0.3)
60
+ builder (3.2.4)
61
+ concurrent-ruby (1.1.5)
62
+ crass (1.0.5)
46
63
  descendants_tracker (0.0.4)
47
64
  thread_safe (~> 0.3, >= 0.3.1)
48
65
  diff-lcs (1.3)
49
- erubi (1.7.0)
66
+ erubi (1.9.0)
50
67
  faraday (0.9.2)
51
68
  multipart-post (>= 1.2, < 3)
52
- git (1.3.0)
69
+ git (1.5.0)
53
70
  github_api (0.16.0)
54
71
  addressable (~> 2.4.0)
55
72
  descendants_tracker (~> 0.0.4)
@@ -57,11 +74,11 @@ GEM
57
74
  hashie (>= 3.4)
58
75
  mime-types (>= 1.16, < 3.0)
59
76
  oauth2 (~> 1.0)
60
- globalid (0.4.1)
77
+ globalid (0.4.2)
61
78
  activesupport (>= 4.2.0)
62
- hashie (3.5.7)
63
- highline (1.7.10)
64
- i18n (0.9.3)
79
+ hashie (4.0.0)
80
+ highline (2.0.3)
81
+ i18n (1.7.0)
65
82
  concurrent-ruby (~> 1.0)
66
83
  jeweler (2.3.9)
67
84
  builder
@@ -74,91 +91,98 @@ GEM
74
91
  rake
75
92
  rdoc
76
93
  semver2
77
- jwt (1.5.6)
78
- loofah (2.1.1)
94
+ jwt (2.2.1)
95
+ loofah (2.4.0)
79
96
  crass (~> 1.0.2)
80
97
  nokogiri (>= 1.5.9)
81
- mail (2.7.0)
98
+ mail (2.7.1)
82
99
  mini_mime (>= 0.1.1)
83
- method_source (0.9.0)
100
+ marcel (0.3.3)
101
+ mimemagic (~> 0.3.2)
102
+ method_source (0.9.2)
84
103
  mime-types (2.99.3)
85
- mini_mime (1.0.0)
86
- mini_portile2 (2.3.0)
87
- minitest (5.11.3)
88
- multi_json (1.13.1)
104
+ mimemagic (0.3.3)
105
+ mini_mime (1.0.2)
106
+ mini_portile2 (2.4.0)
107
+ minitest (5.13.0)
108
+ multi_json (1.14.1)
89
109
  multi_xml (0.6.0)
90
- multipart-post (2.0.0)
91
- nio4r (2.2.0)
92
- nokogiri (1.8.2)
93
- mini_portile2 (~> 2.3.0)
94
- oauth2 (1.4.0)
95
- faraday (>= 0.8, < 0.13)
96
- jwt (~> 1.0)
110
+ multipart-post (2.1.1)
111
+ nio4r (2.5.2)
112
+ nokogiri (1.10.7)
113
+ mini_portile2 (~> 2.4.0)
114
+ oauth2 (1.4.2)
115
+ faraday (>= 0.8, < 2.0)
116
+ jwt (>= 1.0, < 3.0)
97
117
  multi_json (~> 1.3)
98
118
  multi_xml (~> 0.5)
99
119
  rack (>= 1.2, < 3)
100
- psych (3.0.2)
101
- rack (2.0.4)
102
- rack-test (0.8.2)
120
+ psych (3.1.0)
121
+ rack (2.0.8)
122
+ rack-test (1.1.0)
103
123
  rack (>= 1.0, < 3)
104
- rails (5.1.4)
105
- actioncable (= 5.1.4)
106
- actionmailer (= 5.1.4)
107
- actionpack (= 5.1.4)
108
- actionview (= 5.1.4)
109
- activejob (= 5.1.4)
110
- activemodel (= 5.1.4)
111
- activerecord (= 5.1.4)
112
- activesupport (= 5.1.4)
124
+ rails (6.0.2.1)
125
+ actioncable (= 6.0.2.1)
126
+ actionmailbox (= 6.0.2.1)
127
+ actionmailer (= 6.0.2.1)
128
+ actionpack (= 6.0.2.1)
129
+ actiontext (= 6.0.2.1)
130
+ actionview (= 6.0.2.1)
131
+ activejob (= 6.0.2.1)
132
+ activemodel (= 6.0.2.1)
133
+ activerecord (= 6.0.2.1)
134
+ activestorage (= 6.0.2.1)
135
+ activesupport (= 6.0.2.1)
113
136
  bundler (>= 1.3.0)
114
- railties (= 5.1.4)
137
+ railties (= 6.0.2.1)
115
138
  sprockets-rails (>= 2.0.0)
116
139
  rails-dom-testing (2.0.3)
117
140
  activesupport (>= 4.2.0)
118
141
  nokogiri (>= 1.6)
119
- rails-html-sanitizer (1.0.3)
120
- loofah (~> 2.0)
121
- railties (5.1.4)
122
- actionpack (= 5.1.4)
123
- activesupport (= 5.1.4)
142
+ rails-html-sanitizer (1.3.0)
143
+ loofah (~> 2.3)
144
+ railties (6.0.2.1)
145
+ actionpack (= 6.0.2.1)
146
+ activesupport (= 6.0.2.1)
124
147
  method_source
125
148
  rake (>= 0.8.7)
126
- thor (>= 0.18.1, < 2.0)
127
- rake (12.3.0)
128
- rdoc (6.0.1)
129
- redcarpet (3.4.0)
130
- rspec (3.7.0)
131
- rspec-core (~> 3.7.0)
132
- rspec-expectations (~> 3.7.0)
133
- rspec-mocks (~> 3.7.0)
134
- rspec-core (3.7.1)
135
- rspec-support (~> 3.7.0)
136
- rspec-expectations (3.7.0)
149
+ thor (>= 0.20.3, < 2.0)
150
+ rake (13.0.1)
151
+ rdoc (6.2.1)
152
+ redcarpet (3.5.0)
153
+ rspec (3.9.0)
154
+ rspec-core (~> 3.9.0)
155
+ rspec-expectations (~> 3.9.0)
156
+ rspec-mocks (~> 3.9.0)
157
+ rspec-core (3.9.0)
158
+ rspec-support (~> 3.9.0)
159
+ rspec-expectations (3.9.0)
137
160
  diff-lcs (>= 1.2.0, < 2.0)
138
- rspec-support (~> 3.7.0)
139
- rspec-its (1.2.0)
161
+ rspec-support (~> 3.9.0)
162
+ rspec-its (1.3.0)
140
163
  rspec-core (>= 3.0.0)
141
164
  rspec-expectations (>= 3.0.0)
142
- rspec-mocks (3.7.0)
165
+ rspec-mocks (3.9.0)
143
166
  diff-lcs (>= 1.2.0, < 2.0)
144
- rspec-support (~> 3.7.0)
145
- rspec-support (3.7.1)
167
+ rspec-support (~> 3.9.0)
168
+ rspec-support (3.9.0)
146
169
  semver2 (3.4.2)
147
- sprockets (3.7.1)
170
+ sprockets (4.0.0)
148
171
  concurrent-ruby (~> 1.0)
149
172
  rack (> 1, < 3)
150
173
  sprockets-rails (3.2.1)
151
174
  actionpack (>= 4.0)
152
175
  activesupport (>= 4.0)
153
176
  sprockets (>= 3.0.0)
154
- thor (0.20.0)
177
+ thor (1.0.1)
155
178
  thread_safe (0.3.6)
156
- tzinfo (1.2.5)
179
+ tzinfo (1.2.6)
157
180
  thread_safe (~> 0.1)
158
- websocket-driver (0.6.5)
181
+ websocket-driver (0.7.1)
159
182
  websocket-extensions (>= 0.1.0)
160
- websocket-extensions (0.1.3)
161
- yard (0.9.12)
183
+ websocket-extensions (0.1.4)
184
+ yard (0.9.20)
185
+ zeitwerk (2.2.2)
162
186
 
163
187
  PLATFORMS
164
188
  ruby
@@ -174,4 +198,4 @@ DEPENDENCIES
174
198
  yard
175
199
 
176
200
  BUNDLED WITH
177
- 1.16.1
201
+ 2.1.2
data/README.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## ⚠️ DEPRECATED
2
+
3
+ **This gem is no longer maintained.** Consider [`anyway_config`](https://github.com/palkan/anyway_config), [`dry-configurable`](https://dry-rb.org/gems/dry-configurable/), or modern Rails credentials (`config/credentials`) for application configuration.
4
+
5
+ ---
6
+
1
7
  Configoro
2
8
  =========
3
9
 
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  require 'rubygems'
4
2
 
5
3
  #################################### BUNDLER ###################################
@@ -8,8 +6,8 @@ require 'bundler'
8
6
  begin
9
7
  Bundler.setup(:default, :development)
10
8
  rescue Bundler::BundlerError => e
11
- $stderr.puts e.message
12
- $stderr.puts "Run `bundle install` to install missing gems"
9
+ warn e.message
10
+ warn "Run `bundle install` to install missing gems"
13
11
  exit e.status_code
14
12
  end
15
13
  require 'rake'
@@ -22,8 +20,8 @@ Jeweler::Tasks.new do |gem|
22
20
  gem.name = 'configoro'
23
21
  gem.homepage = 'http://github.com/RISCfuture/configoro'
24
22
  gem.license = 'MIT'
25
- gem.summary = %Q{Configuration object and YAML-based storage for Rails apps}
26
- gem.description = %Q{Creates a YourApp::Configuration object whose methods are generated from environment-specific YAML files.}
23
+ gem.summary = %(Configuration object and YAML-based storage for Rails apps)
24
+ gem.description = %(Creates a YourApp::Configuration object whose methods are generated from environment-specific YAML files.)
27
25
  gem.email = 'git@timothymorgan.info'
28
26
  gem.authors = ['Tim Morgan']
29
27
  # dependencies defined in Gemfile
@@ -38,7 +36,7 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
38
36
  spec.pattern = FileList['spec/**/*_spec.rb']
39
37
  end
40
38
 
41
- task :default => :spec
39
+ task default: :spec
42
40
 
43
41
  ##################################### YARD #####################################
44
42
 
@@ -52,8 +50,8 @@ YARD::Rake::YardocTask.new do |doc|
52
50
  doc.options << '-o' << 'doc'
53
51
  doc.options << '--title' << 'Configoro Documentation'
54
52
 
55
- doc.files = %w(lib/**/* README.md)
53
+ doc.files = %w[lib/**/* README.md]
56
54
  end
57
55
 
58
56
  desc "Generate API documentation"
59
- task :doc => :yard
57
+ task doc: :yard
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.1
1
+ 1.4.2
data/configoro.gemspec CHANGED
@@ -2,11 +2,12 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+
5
6
  # stub: configoro 1.4.1 ruby lib
6
7
 
7
8
  Gem::Specification.new do |s|
8
9
  s.name = "configoro".freeze
9
- s.version = "1.4.1"
10
+ s.version = "1.4.2"
10
11
 
11
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
13
  s.require_paths = ["lib".freeze]
@@ -15,75 +16,83 @@ Gem::Specification.new do |s|
15
16
  s.description = "Creates a YourApp::Configuration object whose methods are generated from environment-specific YAML files.".freeze
16
17
  s.email = "git@timothymorgan.info".freeze
17
18
  s.extra_rdoc_files = [
18
- "LICENSE.txt",
19
- "README.md"
19
+ "LICENSE.txt",
20
+ "README.md"
20
21
  ]
21
22
  s.files = [
22
- ".document",
23
- ".rspec",
24
- ".ruby-gemset",
25
- ".ruby-version",
26
- "Gemfile",
27
- "Gemfile.lock",
28
- "LICENSE.txt",
29
- "README.md",
30
- "Rakefile",
31
- "VERSION",
32
- "configoro.gemspec",
33
- "generators/configoro_generator.rb",
34
- "lib/configoro.rb",
35
- "lib/configoro/base.rb",
36
- "lib/configoro/hash.rb",
37
- "lib/configoro/railtie.rb",
38
- "lib/configoro/simple.rb",
39
- "spec/configoro/hash_spec.rb",
40
- "spec/configoro_spec.rb",
41
- "spec/data/config/environments/common/basic.yml",
42
- "spec/data/config/environments/common/erb_test.yml",
43
- "spec/data/config/environments/common/hash_test.yml",
44
- "spec/data/config/environments/development/basic.yml",
45
- "spec/data/config/environments/development/hash_test.yml",
46
- "spec/data/config/environments/production/basic.yml",
47
- "spec/data/other/common/basic.yml",
48
- "spec/data/other/development/basic.yml",
49
- "spec/spec_helper.rb"
23
+ ".document",
24
+ ".rspec",
25
+ ".ruby-gemset",
26
+ ".ruby-version",
27
+ "Gemfile",
28
+ "Gemfile.lock",
29
+ "LICENSE.txt",
30
+ "README.md",
31
+ "Rakefile",
32
+ "VERSION",
33
+ "configoro.gemspec",
34
+ "generators/configoro_generator.rb",
35
+ "lib/configoro.rb",
36
+ "lib/configoro/base.rb",
37
+ "lib/configoro/hash.rb",
38
+ "lib/configoro/railtie.rb",
39
+ "lib/configoro/simple.rb",
40
+ "spec/configoro/hash_spec.rb",
41
+ "spec/configoro_spec.rb",
42
+ "spec/data/config/environments/common/basic.yml",
43
+ "spec/data/config/environments/common/erb_test.yml",
44
+ "spec/data/config/environments/common/hash_test.yml",
45
+ "spec/data/config/environments/development/basic.yml",
46
+ "spec/data/config/environments/development/hash_test.yml",
47
+ "spec/data/config/environments/production/basic.yml",
48
+ "spec/data/other/common/basic.yml",
49
+ "spec/data/other/development/basic.yml",
50
+ "spec/spec_helper.rb"
50
51
  ]
51
52
  s.homepage = "http://github.com/RISCfuture/configoro".freeze
52
53
  s.licenses = ["MIT".freeze]
53
54
  s.rubygems_version = "2.7.5".freeze
54
- s.summary = "Configuration object and YAML-based storage for Rails apps".freeze
55
+ s.summary = "[DEPRECATED] Configuration object and YAML-based storage for Rails apps".freeze
56
+ s.post_install_message = <<~MSG
57
+
58
+ ⚠️ DEPRECATED: configoro is no longer maintained.
59
+
60
+ Consider `anyway_config`, `dry-configurable`, or modern Rails credentials (`config/credentials`) for application configuration.
55
61
 
56
- if s.respond_to? :specification_version then
62
+ This is the final release. No further updates are planned.
63
+
64
+ MSG
65
+
66
+ if s.respond_to? :specification_version
57
67
  s.specification_version = 4
58
68
 
59
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
60
- s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
61
- s.add_development_dependency(%q<rails>.freeze, [">= 4.0"])
62
- s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
63
- s.add_development_dependency(%q<rspec-its>.freeze, [">= 0"])
64
- s.add_development_dependency(%q<yard>.freeze, [">= 0"])
65
- s.add_development_dependency(%q<redcarpet>.freeze, [">= 0"])
66
- s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
67
- s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
69
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0')
70
+ s.add_runtime_dependency('activesupport'.freeze, [">= 0"])
71
+ s.add_development_dependency('bundler'.freeze, [">= 0"])
72
+ s.add_development_dependency('jeweler'.freeze, [">= 0"])
73
+ s.add_development_dependency('rails'.freeze, [">= 4.0"])
74
+ s.add_development_dependency('redcarpet'.freeze, [">= 0"])
75
+ s.add_development_dependency('rspec'.freeze, [">= 0"])
76
+ s.add_development_dependency('rspec-its'.freeze, [">= 0"])
77
+ s.add_development_dependency('yard'.freeze, [">= 0"])
68
78
  else
69
- s.add_dependency(%q<activesupport>.freeze, [">= 0"])
70
- s.add_dependency(%q<rails>.freeze, [">= 4.0"])
71
- s.add_dependency(%q<rspec>.freeze, [">= 0"])
72
- s.add_dependency(%q<rspec-its>.freeze, [">= 0"])
73
- s.add_dependency(%q<yard>.freeze, [">= 0"])
74
- s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
75
- s.add_dependency(%q<bundler>.freeze, [">= 0"])
76
- s.add_dependency(%q<jeweler>.freeze, [">= 0"])
79
+ s.add_dependency('activesupport'.freeze, [">= 0"])
80
+ s.add_dependency('bundler'.freeze, [">= 0"])
81
+ s.add_dependency('jeweler'.freeze, [">= 0"])
82
+ s.add_dependency('rails'.freeze, [">= 4.0"])
83
+ s.add_dependency('redcarpet'.freeze, [">= 0"])
84
+ s.add_dependency('rspec'.freeze, [">= 0"])
85
+ s.add_dependency('rspec-its'.freeze, [">= 0"])
86
+ s.add_dependency('yard'.freeze, [">= 0"])
77
87
  end
78
88
  else
79
- s.add_dependency(%q<activesupport>.freeze, [">= 0"])
80
- s.add_dependency(%q<rails>.freeze, [">= 4.0"])
81
- s.add_dependency(%q<rspec>.freeze, [">= 0"])
82
- s.add_dependency(%q<rspec-its>.freeze, [">= 0"])
83
- s.add_dependency(%q<yard>.freeze, [">= 0"])
84
- s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
85
- s.add_dependency(%q<bundler>.freeze, [">= 0"])
86
- s.add_dependency(%q<jeweler>.freeze, [">= 0"])
89
+ s.add_dependency('activesupport'.freeze, [">= 0"])
90
+ s.add_dependency('rails'.freeze, [">= 4.0"])
91
+ s.add_dependency('rspec'.freeze, [">= 0"])
92
+ s.add_dependency('rspec-its'.freeze, [">= 0"])
93
+ s.add_dependency('yard'.freeze, [">= 0"])
94
+ s.add_dependency('yard'.freeze, [">= 0"])
95
+ s.add_dependency('yard'.freeze, [">= 0"])
96
+ s.add_dependency('yard'.freeze, [">= 0"])
87
97
  end
88
98
  end
89
-
@@ -6,12 +6,12 @@ class ConfigoroGenerator < Rails::Generators::Base
6
6
 
7
7
  def create_yaml_files
8
8
  create_file "config/environments/common/example.yml",
9
- { 'common_setting' => true }.to_yaml
9
+ {'common_setting' => true}.to_yaml
10
10
  create_file "config/environments/development/example.yml",
11
- { 'environment_name' => 'Development' }.to_yaml
11
+ {'environment_name' => 'Development'}.to_yaml
12
12
  create_file "config/environments/test/example.yml",
13
- { 'environment_name' => 'Test' }.to_yaml
13
+ {'environment_name' => 'Test'}.to_yaml
14
14
  create_file "config/environments/production/example.yml",
15
- { 'environment_name' => 'Production' }.to_yaml
15
+ {'environment_name' => 'Production'}.to_yaml
16
16
  end
17
17
  end
@@ -58,11 +58,10 @@ module Configoro
58
58
  config
59
59
  end
60
60
 
61
- private
62
-
63
61
  def self.namespace
64
62
  Object.const_get Rails.application.class.to_s.split('::').first
65
63
  end
64
+ private_class_method :namespace
66
65
 
67
66
  def self.load_data(config, env)
68
67
  paths.each do |path|
@@ -70,4 +69,5 @@ module Configoro
70
69
  Dir.glob("#{path}/#{env}/*.yml").sort.each { |file| config << file }
71
70
  end
72
71
  end
72
+ private_class_method :load_data
73
73
  end
@@ -3,7 +3,7 @@ module Configoro
3
3
 
4
4
  # @private
5
5
  def initialize(hsh={})
6
- if hsh.kind_of?(::Hash) then
6
+ if hsh.kind_of?(::Hash)
7
7
  super()
8
8
  update hsh
9
9
  else
@@ -28,6 +28,7 @@ module Configoro
28
28
  when String
29
29
  raise ArgumentError, "Only files ending in .yml can be added" unless File.extname(hsh_or_path) == '.yml'
30
30
  return self unless File.exist?(hsh_or_path)
31
+
31
32
  data = load_preprocessed_yaml(hsh_or_path)
32
33
  deep_merge! File.basename(hsh_or_path, ".yml") => data
33
34
  when ::Hash
@@ -35,7 +36,7 @@ module Configoro
35
36
  end
36
37
  end
37
38
 
38
- alias_method :push, :<<
39
+ alias push <<
39
40
 
40
41
  # @private
41
42
  def dup
@@ -51,8 +52,8 @@ module Configoro
51
52
  def deep_merge!(other_hash)
52
53
  other_hash.each_pair do |k, v|
53
54
  tv = self[k]
54
- self[k] = if v.kind_of?(::Hash) then
55
- if tv.kind_of?(::Hash) then
55
+ self[k] = if v.kind_of?(::Hash)
56
+ if tv.kind_of?(::Hash)
56
57
  Configoro::Hash.new(tv).deep_merge!(v)
57
58
  else
58
59
  Configoro::Hash.new(v)
@@ -71,14 +72,14 @@ module Configoro
71
72
  # be removed.
72
73
 
73
74
  def method_missing(meth, *args)
74
- if include?(meth.to_s) then
75
- if args.empty? then
75
+ if include?(meth.to_s)
76
+ if args.empty?
76
77
  create_getter meth
77
78
  else
78
79
  raise ArgumentError, "wrong number of arguments (#{args.size} for 0)"
79
80
  end
80
- elsif meth.to_s =~ /^(.+)\?$/ and include?(root_meth = $1) then
81
- if args.empty? then
81
+ elsif meth.to_s =~/^(.+)\?$/ && include?((root_meth = Regexp.last_match(1)))
82
+ if args.empty?
82
83
  !!create_getter(root_meth) #TODO duplication of logic
83
84
  else
84
85
  raise ArgumentError, "wrong number of arguments (#{args.size} for 0)"
@@ -88,40 +89,47 @@ module Configoro
88
89
  end
89
90
  end
90
91
 
92
+ # @private
93
+ def respond_to_missing?(meth, *args)
94
+ include?(meth.to_s) ||
95
+ (meth.to_s =~ /^(.+)\?$/ && include?(Regexp.last_match(1))) ||
96
+ super(meth, *args)
97
+ end
98
+
91
99
  # @private
92
100
  def inspect
93
- "#{to_hash.inspect}:#{self.class.to_s}"
101
+ "#{to_hash.inspect}:#{self.class}"
94
102
  end
95
103
 
96
104
  def to_symbolized_hash
97
- inject({}) do |hsh, (key, value)|
98
- case value
99
- when Configoro::Hash
100
- hsh[key.to_sym] = value.to_symbolized_hash
101
- else
102
- hsh[key.to_sym] = value
103
- end
104
- hsh
105
+ each_with_object({}) do |(key, value), hsh|
106
+ hsh[key.to_sym] = case value
107
+ when Configoro::Hash
108
+ value.to_symbolized_hash
109
+ else
110
+ value
111
+ end
105
112
  end
106
113
  end
107
114
 
108
- protected
109
-
115
+ # @private
110
116
  def self.new_from_hash_copying_default(hash)
111
117
  Configoro::Hash.new(hash).tap do |new_hash|
112
118
  new_hash.default = hash.default
113
119
  end
114
120
  end
115
121
 
122
+ protected
123
+
116
124
  def convert_value(value, options={})
117
- if value.is_a? ::Hash
125
+ if value.kind_of? ::Hash
118
126
  if options[:for] == :to_hash
119
127
  value.to_hash
120
128
  else
121
129
  #value.nested_under_indifferent_access
122
130
  self.class.new_from_hash_copying_default(value)
123
131
  end
124
- elsif value.is_a?(Array)
132
+ elsif value.kind_of?(Array)
125
133
  unless options[:for] == :assignment
126
134
  value = value.dup
127
135
  end
@@ -135,7 +143,7 @@ module Configoro
135
143
 
136
144
  def create_getter(meth)
137
145
  singleton_class.send(:define_method, meth) do
138
- if include?(meth.to_s) then
146
+ if include?(meth.to_s)
139
147
  self[meth.to_s]
140
148
  else
141
149
  remove_getter meth
@@ -143,7 +151,7 @@ module Configoro
143
151
  end
144
152
 
145
153
  singleton_class.send(:define_method, :"#{meth}?") do
146
- if include?(meth.to_s) then
154
+ if include?(meth.to_s)
147
155
  !!self[meth.to_s]
148
156
  else
149
157
  remove_getter meth
@@ -154,19 +162,19 @@ module Configoro
154
162
  end
155
163
 
156
164
  def remove_getter(meth)
157
- if methods.include?(meth.to_sym) then
158
- instance_eval "undef #{meth.to_sym.inspect}"
165
+ if methods.include?(meth.to_sym)
166
+ instance_eval "undef #{meth.to_sym.inspect}", __FILE__, __LINE__
159
167
  end
160
168
 
161
- if methods.include?(:"#{meth}?") then
162
- instance_eval "undef #{:"#{meth}?".inspect}"
169
+ if methods.include?(:"#{meth}?")
170
+ instance_eval "undef #{:"#{meth}?".inspect}", __FILE__, __LINE__
163
171
  end
164
172
 
165
- raise NameError, "undefined local variable or method `#{meth}' for #{self.inspect}"
173
+ raise NameError, "undefined local variable or method `#{meth}' for #{inspect}"
166
174
  end
167
175
 
168
176
  def load_preprocessed_yaml(path)
169
- YAML.load(ERB.new(IO.read(path)).result)
177
+ YAML.safe_load(ERB.new(IO.read(path)).result, [Symbol])
170
178
  end
171
179
  end
172
180
  end
@@ -14,7 +14,7 @@ class Configoro::HashWithIndifferentAccess < ::Hash
14
14
  def deep_merge!(other_hash)
15
15
  other_hash.each_pair do |k, v|
16
16
  tv = self[k]
17
- self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
17
+ self[k] = (tv.kind_of?(Hash) && v.kind_of?(Hash)) ? tv.deep_merge(v) : v
18
18
  end
19
19
  self
20
20
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Configoro::Hash do
4
- subject { Configoro::Hash.new(:string => 'value', :fixnum => 123, :hash => { :foo => 'bar' }, :array => [ 1, 2, 3 ], :nilval => nil) }
4
+ subject { described_class.new(string: 'value', fixnum: 123, hash: {foo: 'bar'}, array: [1, 2, 3], nilval: nil) }
5
5
 
6
6
  context "[getters]" do
7
7
  it "should allow access by symbol" do
@@ -9,21 +9,21 @@ describe Configoro::Hash do
9
9
  end
10
10
 
11
11
  it "should allow access by string" do
12
- expect(subject['fixnum']).to eql(123)
12
+ expect(subject['fixnum']).to be(123)
13
13
  end
14
14
 
15
15
  it "should allow access by method" do
16
- expect(subject.array).to eql([ 1, 2, 3 ])
17
- expect(subject.array).to eql([ 1, 2, 3 ])
16
+ expect(subject.array).to eql([1, 2, 3])
17
+ expect(subject.array).to eql([1, 2, 3])
18
18
  end
19
-
19
+
20
20
  it "should allow access by predicate method" do
21
- expect(subject.string?).to eql(true)
22
- expect(subject.string?).to eql(true)
23
- expect(subject.nilval?).to eql(false)
24
- expect(subject.nilval?).to eql(false)
21
+ expect(subject.string?).to be(true)
22
+ expect(subject.string?).to be(true)
23
+ expect(subject.nilval?).to be(false)
24
+ expect(subject.nilval?).to be(false)
25
25
  end
26
-
26
+
27
27
  # We try the above methods twice: Once for creating the method, the other
28
28
  # for accessing it
29
29
  end
@@ -67,11 +67,11 @@ describe Configoro::Hash do
67
67
  end
68
68
 
69
69
  describe "#<<" do
70
- subject { Configoro::Hash.new }
70
+ subject { described_class.new }
71
71
 
72
72
  it "should deep-merge entries from a hash" do
73
- subject << { :a => 'b', :b => { :c => 'd' } }
74
- subject << { :a => 'b', :b => { :d => 'e' } }
73
+ subject << {a: 'b', b: {c: 'd'}}
74
+ subject << {a: 'b', b: {d: 'e'}}
75
75
 
76
76
  expect(subject.a).to eql('b')
77
77
  expect(subject.b.c).to eql('d')
@@ -98,22 +98,22 @@ describe Configoro::Hash do
98
98
 
99
99
  it "should preprocess YAML file as ERB" do
100
100
  subject << "#{File.dirname __FILE__}/../data/config/environments/common/erb_test.yml"
101
- expect(subject.erb_test.sum_test).to eql(2)
101
+ expect(subject.erb_test.sum_test).to be(2)
102
102
  end
103
103
  end
104
104
 
105
105
  describe "#deep_merge!" do
106
- subject { Configoro::Hash.new }
106
+ subject { described_class.new }
107
107
 
108
108
  it "should merge in keys and values" do
109
109
  subject['a'] = 'old'
110
- subject.deep_merge! :a => 'new'
110
+ subject.deep_merge! a: 'new'
111
111
  expect(subject.a).to eql('new')
112
112
  end
113
113
 
114
114
  it "should deep-merge sub-hashes and convert them to Configoro::Hashes" do
115
- subject['hsh'] = { 'key1' => 'val1', 'key2' => 'val2' }
116
- subject.deep_merge! :hsh => { 'key2' => 'newval' }
115
+ subject['hsh'] = {'key1' => 'val1', 'key2' => 'val2'}
116
+ subject.deep_merge! hsh: {'key2' => 'newval'}
117
117
 
118
118
  expect(subject.hsh.key1).to eql('val1')
119
119
  expect(subject.hsh.key2).to eql('newval')
@@ -121,8 +121,8 @@ describe Configoro::Hash do
121
121
  end
122
122
 
123
123
  describe "#to_symbolized_hash" do
124
- subject { Configoro::Hash.new(foo: {bar: 'baz'}) }
124
+ subject { described_class.new(foo: {bar: 'baz'}) }
125
125
 
126
- its(:to_symbolized_hash) { should eql(foo: {bar: 'baz'}) }
126
+ its(:to_symbolized_hash) { is_expected.to eql(foo: {bar: 'baz'}) }
127
127
  end
128
128
  end
@@ -33,24 +33,24 @@ describe Configoro do
33
33
 
34
34
  it "should not complain when there is no directory for the current environment" do
35
35
  allow(Rails).to receive(:env).and_return('unknown')
36
- Configoro.initialize
37
- expect(MyApp::Configuration).to eql({"basic"=>{"common_only"=>"common", "env_name"=>"common"}, "erb_test" => {"sum_test" => 2}, "hash_test"=>{"akey"=>"value", "subhash"=>{"key1"=>"val1", "key2"=>"val2"}}})
36
+ described_class.initialize
37
+ expect(MyApp::Configuration).to eql("basic"=>{"common_only"=>"common", "env_name"=>"common"}, "erb_test" => {"sum_test" => 2}, "hash_test"=>{"akey"=>"value", "subhash"=>{"key1"=>"val1", "key2"=>"val2"}})
38
38
  end
39
39
 
40
40
  context "[custom search paths]" do
41
- before(:each) { Configoro.instance_variable_set :@paths, nil }
41
+ before(:each) { described_class.instance_variable_set :@paths, nil }
42
42
 
43
43
  it "should use common configuration under a custom search path" do
44
44
  allow(Rails).to receive(:env).and_return('unknown')
45
- Configoro.paths << File.join(File.dirname(__FILE__), 'data', 'other')
46
- Configoro.initialize
45
+ described_class.paths << File.join(File.dirname(__FILE__), 'data', 'other')
46
+ described_class.initialize
47
47
  expect(MyApp::Configuration.basic.env_name).to eql('other_common')
48
48
  end
49
49
 
50
50
  it "should use environment-specific configuration under a custom search path" do
51
51
  allow(Rails).to receive(:env).and_return('development')
52
- Configoro.paths << File.join(File.dirname(__FILE__), 'data', 'other')
53
- Configoro.initialize
52
+ described_class.paths << File.join(File.dirname(__FILE__), 'data', 'other')
53
+ described_class.initialize
54
54
  expect(MyApp::Configuration.basic.env_name).to eql('other_development')
55
55
  end
56
56
  end
data/spec/spec_helper.rb CHANGED
@@ -11,12 +11,13 @@ require 'configoro'
11
11
 
12
12
  # Requires supporting files with custom matchers and macros, etc,
13
13
  # in ./support/ and its subdirectories.
14
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
14
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
15
15
 
16
16
  RSpec.configure do |config|
17
17
  config.before :each do
18
- application = double('Rails.application', :class => 'MyApp::Application')
19
- ::Rails = double('Rails', :application => application, :env => 'development', :root => File.join(File.dirname(__FILE__), 'data'))
18
+ application = instance_double('Rails::Application', class: 'MyApp::Application')
19
+ Object.send :remove_const, :Rails
20
+ ::Rails = class_double('Rails', application: application, env: 'development', root: File.join(File.dirname(__FILE__), 'data'))
20
21
  Configoro.initialize
21
22
  end
22
23
  end
metadata CHANGED
@@ -1,11 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configoro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Morgan
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
10
  date: 2018-02-07 00:00:00.000000000 Z
@@ -25,21 +24,21 @@ dependencies:
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: rails
27
+ name: bundler
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '4.0'
32
+ version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '4.0'
39
+ version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: rspec
41
+ name: jeweler
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
@@ -53,21 +52,21 @@ dependencies:
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
54
  - !ruby/object:Gem::Dependency
56
- name: rspec-its
55
+ name: rails
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '0'
60
+ version: '4.0'
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
- version: '0'
67
+ version: '4.0'
69
68
  - !ruby/object:Gem::Dependency
70
- name: yard
69
+ name: redcarpet
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
@@ -81,7 +80,7 @@ dependencies:
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
83
82
  - !ruby/object:Gem::Dependency
84
- name: redcarpet
83
+ name: rspec
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
@@ -95,7 +94,7 @@ dependencies:
95
94
  - !ruby/object:Gem::Version
96
95
  version: '0'
97
96
  - !ruby/object:Gem::Dependency
98
- name: bundler
97
+ name: rspec-its
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - ">="
@@ -109,7 +108,7 @@ dependencies:
109
108
  - !ruby/object:Gem::Version
110
109
  version: '0'
111
110
  - !ruby/object:Gem::Dependency
112
- name: jeweler
111
+ name: yard
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
114
  - - ">="
@@ -163,7 +162,14 @@ homepage: http://github.com/RISCfuture/configoro
163
162
  licenses:
164
163
  - MIT
165
164
  metadata: {}
166
- post_install_message:
165
+ post_install_message: |2+
166
+
167
+ ⚠️ DEPRECATED: configoro is no longer maintained.
168
+
169
+ Consider `anyway_config`, `dry-configurable`, or modern Rails credentials (`config/credentials`) for application configuration.
170
+
171
+ This is the final release. No further updates are planned.
172
+
167
173
  rdoc_options: []
168
174
  require_paths:
169
175
  - lib
@@ -178,9 +184,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
184
  - !ruby/object:Gem::Version
179
185
  version: '0'
180
186
  requirements: []
181
- rubyforge_project:
182
- rubygems_version: 2.7.5
183
- signing_key:
187
+ rubygems_version: 4.0.11
184
188
  specification_version: 4
185
- summary: Configuration object and YAML-based storage for Rails apps
189
+ summary: "[DEPRECATED] Configuration object and YAML-based storage for Rails apps"
186
190
  test_files: []
191
+ ...