conker 0.14.2 → 0.15.0
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.
- data/conker.gemspec +1 -1
- data/lib/conker.rb +21 -1
- metadata +2 -2
data/conker.gemspec
CHANGED
@@ -2,7 +2,7 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'conker'
|
3
3
|
s.authors = ['Sam Stokes', 'Conrad Irwin', 'Lee Mallabone', 'Martin Kleppmann']
|
4
4
|
s.email = 'supportive@rapportive.com'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.15.0'
|
6
6
|
s.summary = %q{Conker will conquer your config.}
|
7
7
|
s.description = "Configuration library."
|
8
8
|
s.homepage = "https://github.com/rapportive/conker"
|
data/lib/conker.rb
CHANGED
@@ -181,7 +181,10 @@ module Conker
|
|
181
181
|
|
182
182
|
class VariableDeclaration
|
183
183
|
def initialize(declaration_opts)
|
184
|
-
declaration_opts.assert_valid_keys :required_in, :type, :default, *ENVIRONMENTS.map(&:to_sym)
|
184
|
+
declaration_opts.assert_valid_keys :required_in, :type, :default, *ENVIRONMENTS.map(&:to_sym), :delimiter
|
185
|
+
if declaration_opts.key?(:delimiter) && declaration_opts[:type] != :array
|
186
|
+
raise "Unknown key :delimiter for type :#{declaration_opts[:type] || :string}. Did you mean :type => :array?"
|
187
|
+
end
|
185
188
|
@declaration_opts = declaration_opts.with_indifferent_access
|
186
189
|
end
|
187
190
|
|
@@ -277,6 +280,23 @@ module Conker
|
|
277
280
|
raise IncompatibleType, "wanted a Hash, got #{value.class}"
|
278
281
|
end
|
279
282
|
value.with_indifferent_access
|
283
|
+
when :array
|
284
|
+
if delimiter = @declaration_opts[:delimiter]
|
285
|
+
# e.g. ENV['WIDGET'] = 'foo:bar:baz' # yields ['foo', 'bar', 'baz']
|
286
|
+
if value.is_a? String
|
287
|
+
value.split(delimiter)
|
288
|
+
else
|
289
|
+
raise IncompatibleType, "wanted a String to parse :array with :delimiter, got #{value.class}"
|
290
|
+
end
|
291
|
+
else
|
292
|
+
# e.g.
|
293
|
+
# WIDGET: foo # yields WIDGET = ['foo']
|
294
|
+
# WIDGET:
|
295
|
+
# - bar
|
296
|
+
# - baz
|
297
|
+
# # yields WIDGET = ['foo', 'bar']
|
298
|
+
Array(value)
|
299
|
+
end
|
280
300
|
else
|
281
301
|
raise UnknownType, type.to_s
|
282
302
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-10-
|
15
|
+
date: 2013-10-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activesupport
|