superconfig 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-tests.yml +2 -2
- data/CHANGELOG.md +5 -1
- data/lib/superconfig.rb +15 -13
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19c4f5d2faef5fdb37e7e7d90aaee000304324181ed100ceba65f2d5ca6deae4
|
4
|
+
data.tar.gz: 29e04481feccd4677d1d5d460fceb83a48d9e283d32bbadf76e29adf47336cce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0075c401a0fb1c7735a44538d6544bc17e79fd83e8ad7b068da06a52f0f96cd1eda15a65a4276f22f4711caf3cc41f782f05dd50c768cca7e34379da167d125d
|
7
|
+
data.tar.gz: db789b81ef4ebd8f6a0705178208ba88452d477e66dbb44d6c37fed764eaa1584d0a1f8c07cb5c253877cbb7f01bd69aea51d2d0475f3784b43782e28840fe65
|
data/CHANGELOG.md
CHANGED
data/lib/superconfig.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module SuperConfig
|
4
|
-
VERSION = "2.1.
|
4
|
+
VERSION = "2.1.1"
|
5
5
|
|
6
6
|
MissingEnvironmentVariable = Class.new(StandardError)
|
7
7
|
MissingCallable = Class.new(StandardError)
|
@@ -48,7 +48,7 @@ module SuperConfig
|
|
48
48
|
define_singleton_method(name) do
|
49
49
|
return default unless @env.key?(env_var)
|
50
50
|
|
51
|
-
coerce(type, @env[env_var])
|
51
|
+
coerce(env_var, type, @env[env_var])
|
52
52
|
end
|
53
53
|
|
54
54
|
aliases.each do |alias_name|
|
@@ -169,41 +169,43 @@ module SuperConfig
|
|
169
169
|
"#{report.join("\n")}\n"
|
170
170
|
end
|
171
171
|
|
172
|
-
private def coerce_to_string(value)
|
172
|
+
private def coerce_to_string(_name, value)
|
173
173
|
value
|
174
174
|
end
|
175
175
|
|
176
|
-
private def coerce_to_bool(value)
|
176
|
+
private def coerce_to_bool(_name, value)
|
177
177
|
BOOL_TRUE.include?(value)
|
178
178
|
end
|
179
179
|
|
180
|
-
private def coerce_to_int(value)
|
180
|
+
private def coerce_to_int(_name, value)
|
181
181
|
Integer(value) if !BOOL_FALSE.include?(value) && value
|
182
182
|
end
|
183
183
|
|
184
|
-
private def coerce_to_float(value)
|
184
|
+
private def coerce_to_float(_name, value)
|
185
185
|
Float(value) if value
|
186
186
|
end
|
187
187
|
|
188
|
-
private def coerce_to_bigdecimal(value)
|
188
|
+
private def coerce_to_bigdecimal(_name, value)
|
189
189
|
BigDecimal(value) if value
|
190
190
|
end
|
191
191
|
|
192
|
-
private def coerce_to_symbol(value)
|
192
|
+
private def coerce_to_symbol(_name, value)
|
193
193
|
value&.to_sym
|
194
194
|
end
|
195
195
|
|
196
|
-
private def coerce_to_array(value, type)
|
197
|
-
value&.split(/, */)&.map {|v| coerce(type, v) }
|
196
|
+
private def coerce_to_array(name, value, type)
|
197
|
+
value&.split(/, */)&.map {|v| coerce(name, type, v) }
|
198
198
|
end
|
199
199
|
|
200
|
-
private def coerce_to_json(value)
|
200
|
+
private def coerce_to_json(name, value)
|
201
201
|
value && JSON.parse(value)
|
202
|
+
rescue JSON::ParserError
|
203
|
+
raise ArgumentError, "#{name} is not a valid JSON string"
|
202
204
|
end
|
203
205
|
|
204
|
-
private def coerce(type, value)
|
206
|
+
private def coerce(name, type, value)
|
205
207
|
main_type, sub_type = type
|
206
|
-
args = [value]
|
208
|
+
args = [name, value]
|
207
209
|
args << sub_type if sub_type
|
208
210
|
|
209
211
|
send("coerce_to_#{main_type}", *args)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: superconfig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
- !ruby/object:Gem::Version
|
185
185
|
version: '0'
|
186
186
|
requirements: []
|
187
|
-
rubygems_version: 3.
|
187
|
+
rubygems_version: 3.4.6
|
188
188
|
signing_key:
|
189
189
|
specification_version: 4
|
190
190
|
summary: Access environment variables. Also includes presence validation, type coercion
|