nugrant 2.1.1 → 2.1.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 +4 -4
- data/CHANGELOG.md +9 -1
- data/lib/nugrant/bag.rb +46 -2
- data/lib/nugrant/version.rb +1 -1
- data/test/lib/nugrant/test_bag.rb +106 -49
- data/test/lib/nugrant/test_parameters.rb +47 -45
- data/test/resources/vagrantfiles/v2.bag_inside_array +15 -0
- data/test/resources/vagrantfiles/v2.fake +19 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59d03f3a6d570c597abc17133e4d68782e455cc0
|
4
|
+
data.tar.gz: f0d3558fa09f660559cbdd283d84b2b845a16d69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f85374f9ff849c110f185558d2594355c5636037472ec278697b544aa5ee0ed1c7c0d869cb43f42d6d78895388444407fe2037e1e7c4d33586deb545c132ccb
|
7
|
+
data.tar.gz: 22761919a1b509bef418fd2993641d7f2b7d43ae9807bd58bd2d278af43a632665812a28236717c3f7c53bbcfbc25cc1514380d73bb0ba7ab6d67f415d4d9db0
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
+
# 2.1.2 (January 12th, 2015)
|
2
|
+
|
3
|
+
* Fixed indifferent access inside arrays. Array elements of type `Hash`
|
4
|
+
are now converted to `Bag` instances (recursively). This fix the
|
5
|
+
indifferent access of `Bag` elements inside arrays.
|
6
|
+
|
7
|
+
Fixes [issue #27](https://github.com/maoueh/nugrant/issues/27).
|
8
|
+
|
1
9
|
# 2.1.1 (December 2nd, 2014)
|
2
10
|
|
3
11
|
* Permit numeric keys in bag. They are converted to symbol
|
4
12
|
like others.
|
5
13
|
|
6
|
-
Fixes [issue #26](https://github.com/maoueh/nugrant/issues/26)
|
14
|
+
Fixes [issue #26](https://github.com/maoueh/nugrant/issues/26).
|
7
15
|
|
8
16
|
* Removed old code that was switching YAML engine to `syck` when
|
9
17
|
it was available.
|
data/lib/nugrant/bag.rb
CHANGED
@@ -142,7 +142,7 @@ module Nugrant
|
|
142
142
|
|
143
143
|
Hash[map do |key, value|
|
144
144
|
key = use_string_key ? key.to_s() : key
|
145
|
-
value = value
|
145
|
+
value = __convert_value_to_hash(value, options)
|
146
146
|
|
147
147
|
[key, value]
|
148
148
|
end]
|
@@ -178,11 +178,55 @@ module Nugrant
|
|
178
178
|
# ensures at the same time a deeply preventive copy since a new
|
179
179
|
# instance is created for this nested structure.
|
180
180
|
#
|
181
|
+
# In addition, it also transforms array elements of type Hash into
|
182
|
+
# Bag instance also. This enable indifferent access inside arrays
|
183
|
+
# also.
|
184
|
+
#
|
181
185
|
# @param value The value to convert to bag if necessary
|
182
186
|
# @return The converted value
|
183
187
|
#
|
184
188
|
def __convert_value(value)
|
185
|
-
|
189
|
+
case
|
190
|
+
# Converts Hash to Bag instance
|
191
|
+
when value.kind_of?(Hash)
|
192
|
+
Bag.new(value, @__config)
|
193
|
+
|
194
|
+
# Converts Array elements to Bag instances if needed
|
195
|
+
when value.kind_of?(Array)
|
196
|
+
value.map(&self.method(:__convert_value))
|
197
|
+
|
198
|
+
# Keeps as-is other elements
|
199
|
+
else
|
200
|
+
value
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
##
|
205
|
+
# This function does the reversion of value conversion to Bag
|
206
|
+
# instances. It transforms Bag instances to Hash (using to_hash)
|
207
|
+
# and array Bag elements to Hash (using to_hash).
|
208
|
+
#
|
209
|
+
# The options parameters are pass to the to_hash function
|
210
|
+
# when invoked.
|
211
|
+
#
|
212
|
+
# @param value The value to convert to hash
|
213
|
+
# @param options The options passed to the to_hash function
|
214
|
+
# @return The converted value
|
215
|
+
#
|
216
|
+
def __convert_value_to_hash(value, options = {})
|
217
|
+
case
|
218
|
+
# Converts Bag instance to Hash
|
219
|
+
when value.kind_of?(Bag)
|
220
|
+
value.to_hash(options)
|
221
|
+
|
222
|
+
# Converts Array elements to Hash instances if needed
|
223
|
+
when value.kind_of?(Array)
|
224
|
+
value.map { |value| __convert_value_to_hash(value, options) }
|
225
|
+
|
226
|
+
# Keeps as-is other elements
|
227
|
+
else
|
228
|
+
value
|
229
|
+
end
|
186
230
|
end
|
187
231
|
|
188
232
|
def __get(key)
|
data/lib/nugrant/version.rb
CHANGED
@@ -5,39 +5,10 @@ require 'nugrant/helper/bag'
|
|
5
5
|
|
6
6
|
module Nugrant
|
7
7
|
class TestBag < ::Minitest::Test
|
8
|
-
def create_bag(elements, options = {})
|
9
|
-
return Bag.new(elements, options)
|
10
|
-
end
|
11
|
-
|
12
|
-
def assert_all_access_equal(expected, bag, key)
|
13
|
-
assert_equal(expected, bag.method_missing(key.to_sym), "bag.#{key.to_sym}")
|
14
|
-
assert_equal(expected, bag[key.to_s], "bag[#{key.to_s}]")
|
15
|
-
assert_equal(expected, bag[key.to_sym], "bag[#{key.to_sym}]")
|
16
|
-
end
|
17
|
-
|
18
|
-
def assert_all_access_bag(expected, bag, key)
|
19
|
-
assert_bag(expected, bag.method_missing(key.to_sym))
|
20
|
-
assert_bag(expected, bag[key.to_s])
|
21
|
-
assert_bag(expected, bag[key.to_sym])
|
22
|
-
end
|
23
|
-
|
24
|
-
def assert_bag(expected, bag)
|
25
|
-
assert_kind_of(Bag, bag)
|
26
|
-
|
27
|
-
expected.each do |key, expected_value|
|
28
|
-
if not expected_value.kind_of?(Hash)
|
29
|
-
assert_all_access_equal(expected_value, bag, key)
|
30
|
-
next
|
31
|
-
end
|
32
|
-
|
33
|
-
assert_all_access_bag(expected_value, bag, key)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
8
|
def run_test_bag(parameters)
|
38
9
|
bag = create_bag(parameters)
|
39
10
|
|
40
|
-
|
11
|
+
assert_bag_equal(parameters, bag)
|
41
12
|
end
|
42
13
|
|
43
14
|
def test_bag()
|
@@ -101,18 +72,46 @@ module Nugrant
|
|
101
72
|
def test_to_hash()
|
102
73
|
hash = create_bag({}).to_hash()
|
103
74
|
|
104
|
-
|
75
|
+
assert_is_hash_exclusive(hash)
|
105
76
|
assert_equal({}, hash)
|
106
77
|
|
107
78
|
hash = create_bag({"value" => {:one => "value", "two" => "value"}}).to_hash()
|
108
79
|
|
109
|
-
|
110
|
-
|
80
|
+
assert_is_hash_exclusive(hash)
|
81
|
+
assert_is_hash_exclusive(hash[:value])
|
111
82
|
assert_kind_of(String, hash[:value][:one])
|
112
83
|
assert_kind_of(String, hash[:value][:two])
|
113
84
|
assert_equal({:value => {:one => "value", :two => "value"}}, hash)
|
114
85
|
end
|
115
86
|
|
87
|
+
def test_to_hash_array_with_bag()
|
88
|
+
hash = create_bag({:a => [{:b => "1", :c => [{"d" => "2"}]}]}).to_hash()
|
89
|
+
|
90
|
+
assert_is_hash_exclusive(hash)
|
91
|
+
assert_kind_of(Array, hash[:a])
|
92
|
+
assert_is_hash_exclusive(hash[:a][0])
|
93
|
+
assert_kind_of(String, hash[:a][0][:b])
|
94
|
+
assert_kind_of(Array, hash[:a][0][:c])
|
95
|
+
assert_is_hash_exclusive(hash[:a][0][:c][0])
|
96
|
+
assert_kind_of(String, hash[:a][0][:c][0][:d])
|
97
|
+
|
98
|
+
assert_equal({:a => [{:b => "1", :c => [{:d => "2"}]}]}, hash)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_to_hash_array_with_bag_string_key()
|
102
|
+
hash = create_bag({:a => [{:b => "1", :c => [{"d" => "2"}]}]}).to_hash(use_string_key: true)
|
103
|
+
|
104
|
+
assert_is_hash_exclusive(hash)
|
105
|
+
assert_kind_of(Array, hash["a"])
|
106
|
+
assert_is_hash_exclusive(hash["a"][0])
|
107
|
+
assert_kind_of(String, hash["a"][0]["b"])
|
108
|
+
assert_kind_of(Array, hash["a"][0]["c"])
|
109
|
+
assert_is_hash_exclusive(hash["a"][0]["c"][0])
|
110
|
+
assert_kind_of(String, hash["a"][0]["c"][0]["d"])
|
111
|
+
|
112
|
+
assert_equal({"a" => [{"b" => "1", "c" => [{"d" => "2"}]}]}, hash)
|
113
|
+
end
|
114
|
+
|
116
115
|
def test_merge_array_replace()
|
117
116
|
# Replace should be the default case
|
118
117
|
bag1 = create_bag({"first" => [1, 2]})
|
@@ -168,16 +167,16 @@ module Nugrant
|
|
168
167
|
|
169
168
|
assert_equal({:first => {:second => [3, 4]}, :third => "three"}, bag1.to_hash())
|
170
169
|
|
171
|
-
|
172
|
-
|
170
|
+
assert_indifferent_access_equal({:second => [3, 4]}, bag1, :first)
|
171
|
+
assert_indifferent_access_equal([3, 4], bag1["first"], :second)
|
173
172
|
end
|
174
173
|
|
175
174
|
def test_set_a_slot_with_a_hash_keeps_indifferent_access
|
176
175
|
bag1 = create_bag({})
|
177
176
|
bag1["first"] = {:second => [1, 2]}
|
178
177
|
|
179
|
-
|
180
|
-
|
178
|
+
assert_indifferent_access_equal({:second => [1, 2]}, bag1, :first)
|
179
|
+
assert_indifferent_access_equal([1, 2], bag1["first"], :second)
|
181
180
|
end
|
182
181
|
|
183
182
|
def test_nil_key()
|
@@ -217,7 +216,7 @@ module Nugrant
|
|
217
216
|
def test_numeric_keys_converted_to_string
|
218
217
|
bag1 = create_bag({1 => "value1"})
|
219
218
|
|
220
|
-
|
219
|
+
assert_indifferent_access_equal("value1", bag1, :'1')
|
221
220
|
end
|
222
221
|
|
223
222
|
def test_custom_key_error_handler
|
@@ -243,7 +242,7 @@ module Nugrant
|
|
243
242
|
"Some value"
|
244
243
|
end)
|
245
244
|
|
246
|
-
|
245
|
+
assert_indifferent_access_equal("Some value", bag, :invalid_value)
|
247
246
|
end
|
248
247
|
|
249
248
|
def test_walk_bag
|
@@ -304,11 +303,11 @@ module Nugrant
|
|
304
303
|
|
305
304
|
assert_equal(Nugrant::Bag, bag3.class)
|
306
305
|
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
306
|
+
assert_indifferent_access_equal("value1", bag3['first'], :level1)
|
307
|
+
assert_indifferent_access_equal("overriden2", bag3['first'], :level2)
|
308
|
+
assert_indifferent_access_equal("value3", bag3['second'], :level1)
|
309
|
+
assert_indifferent_access_equal("value4", bag3['second'], :level2)
|
310
|
+
assert_indifferent_access_equal("overriden5", bag3, :third)
|
312
311
|
end
|
313
312
|
|
314
313
|
def test_merge!
|
@@ -342,11 +341,11 @@ module Nugrant
|
|
342
341
|
|
343
342
|
assert_equal(Nugrant::Bag, bag3.class)
|
344
343
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
344
|
+
assert_indifferent_access_equal("value1", bag3['first'], :level1)
|
345
|
+
assert_indifferent_access_equal("overriden2", bag3['first'], :level2)
|
346
|
+
assert_indifferent_access_equal("value3", bag3['second'], :level1)
|
347
|
+
assert_indifferent_access_equal("value4", bag3['second'], :level2)
|
348
|
+
assert_indifferent_access_equal("overriden5", bag3, :third)
|
350
349
|
end
|
351
350
|
|
352
351
|
def test_merge_hash()
|
@@ -389,5 +388,63 @@ module Nugrant
|
|
389
388
|
|
390
389
|
assert_equal([1, 2, 3, 1, 2, 3], bag3['first'])
|
391
390
|
end
|
391
|
+
|
392
|
+
def test_indifferent_access_in_array
|
393
|
+
bag = create_bag({:a => [{:b => 1, :c => [{"d" => 1}]}]})
|
394
|
+
|
395
|
+
assert_indifferent_access_equal(1, bag['a'][0]['c'][0], :d)
|
396
|
+
end
|
397
|
+
|
398
|
+
## Helpers & Assertions
|
399
|
+
|
400
|
+
def create_bag(elements, options = {})
|
401
|
+
return Bag.new(elements, options)
|
402
|
+
end
|
403
|
+
|
404
|
+
def assert_is_hash_exclusive(input)
|
405
|
+
assert_equal(true, input.kind_of?(Hash), "#{input} should be a kind of Hash")
|
406
|
+
assert_equal(false, input.kind_of?(Bag), "#{input} should not be a kind of Bag")
|
407
|
+
end
|
408
|
+
|
409
|
+
def assert_indifferent_access_equal(expected, bag, key)
|
410
|
+
assert_symbol_access_equal(expected, bag, key)
|
411
|
+
assert_string_access_equal(expected, bag, key)
|
412
|
+
end
|
413
|
+
|
414
|
+
def assert_string_access_equal(expected, bag, key)
|
415
|
+
assert_equal(expected, bag[key.to_s], "bag[#{key.to_s}]")
|
416
|
+
end
|
417
|
+
|
418
|
+
def assert_symbol_access_equal(expected, bag, key)
|
419
|
+
assert_equal(expected, bag.method_missing(key.to_sym), "bag.#{key.to_sym}")
|
420
|
+
assert_equal(expected, bag[key.to_sym], "bag[#{key.to_sym}]")
|
421
|
+
end
|
422
|
+
|
423
|
+
def assert_indifferent_access_bag_equal(expected, bag, key)
|
424
|
+
assert_string_access_bag_equal(expected, bag, key)
|
425
|
+
assert_symbol_access_bag_equal(expected, bag, key)
|
426
|
+
end
|
427
|
+
|
428
|
+
def assert_string_access_bag_equal(expected, bag, key)
|
429
|
+
assert_bag_equal(expected, bag[key.to_s])
|
430
|
+
end
|
431
|
+
|
432
|
+
def assert_symbol_access_bag_equal(expected, bag, key)
|
433
|
+
assert_bag_equal(expected, bag.method_missing(key.to_sym))
|
434
|
+
assert_bag_equal(expected, bag[key.to_sym])
|
435
|
+
end
|
436
|
+
|
437
|
+
def assert_bag_equal(expected, bag)
|
438
|
+
assert_kind_of(Bag, bag)
|
439
|
+
|
440
|
+
expected.each do |key, expected_value|
|
441
|
+
if not expected_value.kind_of?(Hash)
|
442
|
+
assert_indifferent_access_equal(expected_value, bag, key)
|
443
|
+
next
|
444
|
+
end
|
445
|
+
|
446
|
+
assert_indifferent_access_bag_equal(expected_value, bag, key)
|
447
|
+
end
|
448
|
+
end
|
392
449
|
end
|
393
450
|
end
|
@@ -10,51 +10,6 @@ module Nugrant
|
|
10
10
|
@@FORMATS = [:json, :yaml]
|
11
11
|
@@INVALID_PATH = "impossible_file_path.yamljson.impossible"
|
12
12
|
|
13
|
-
def create_parameters(format, current_filename, user_filename, system_filename, defaults = {}, options = {})
|
14
|
-
extension = case format
|
15
|
-
when :json
|
16
|
-
"json"
|
17
|
-
when :yml, :yaml
|
18
|
-
"yml"
|
19
|
-
else
|
20
|
-
raise ArgumentError, "Format [#{format}] is currently not supported"
|
21
|
-
end
|
22
|
-
|
23
|
-
resource_path = File.expand_path("#{File.dirname(__FILE__)}/../../resources/#{format}")
|
24
|
-
|
25
|
-
current_path = "#{resource_path}/#{current_filename}.#{extension}" if current_filename
|
26
|
-
user_path = "#{resource_path}/#{user_filename}.#{extension}" if user_filename
|
27
|
-
system_path = "#{resource_path}/#{system_filename}.#{extension}" if system_filename
|
28
|
-
|
29
|
-
return Nugrant::Parameters.new(defaults, {
|
30
|
-
:format => format,
|
31
|
-
:current_path => current_path,
|
32
|
-
:user_path => user_path,
|
33
|
-
:system_path => system_path,
|
34
|
-
:array_merge_strategy => options[:array_merge_strategy]
|
35
|
-
})
|
36
|
-
end
|
37
|
-
|
38
|
-
def assert_all_access_equal(expected, parameters, key)
|
39
|
-
assert_equal(expected, parameters.method_missing(key.to_sym), "parameters.#{key.to_s}")
|
40
|
-
assert_equal(expected, parameters[key.to_s], "parameters[#{key.to_s}]")
|
41
|
-
assert_equal(expected, parameters[key.to_sym], "parameters[#{key.to_sym}]")
|
42
|
-
end
|
43
|
-
|
44
|
-
def assert_level(parameters, results)
|
45
|
-
results.each do |key, value|
|
46
|
-
assert_all_access_equal(value, parameters, key)
|
47
|
-
end
|
48
|
-
|
49
|
-
assert_key_error(parameters, "0.0.0")
|
50
|
-
end
|
51
|
-
|
52
|
-
def assert_key_error(parameters, key)
|
53
|
-
assert_raises(KeyError) do
|
54
|
-
parameters[key]
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
13
|
def test_params_level_1()
|
59
14
|
formats.each do |format|
|
60
15
|
parameters = create_parameters(format, "params_current_1", "params_user_1", "params_system_1")
|
@@ -425,6 +380,53 @@ module Nugrant
|
|
425
380
|
assert_equal("value1", parameters.servers[:'1'])
|
426
381
|
end
|
427
382
|
|
383
|
+
## Helpers & Assertions
|
384
|
+
|
385
|
+
def create_parameters(format, current_filename, user_filename, system_filename, defaults = {}, options = {})
|
386
|
+
extension = case format
|
387
|
+
when :json
|
388
|
+
"json"
|
389
|
+
when :yml, :yaml
|
390
|
+
"yml"
|
391
|
+
else
|
392
|
+
raise ArgumentError, "Format [#{format}] is currently not supported"
|
393
|
+
end
|
394
|
+
|
395
|
+
resource_path = File.expand_path("#{File.dirname(__FILE__)}/../../resources/#{format}")
|
396
|
+
|
397
|
+
current_path = "#{resource_path}/#{current_filename}.#{extension}" if current_filename
|
398
|
+
user_path = "#{resource_path}/#{user_filename}.#{extension}" if user_filename
|
399
|
+
system_path = "#{resource_path}/#{system_filename}.#{extension}" if system_filename
|
400
|
+
|
401
|
+
return Nugrant::Parameters.new(defaults, {
|
402
|
+
:format => format,
|
403
|
+
:current_path => current_path,
|
404
|
+
:user_path => user_path,
|
405
|
+
:system_path => system_path,
|
406
|
+
:array_merge_strategy => options[:array_merge_strategy]
|
407
|
+
})
|
408
|
+
end
|
409
|
+
|
410
|
+
def assert_all_access_equal(expected, parameters, key)
|
411
|
+
assert_equal(expected, parameters.method_missing(key.to_sym), "parameters.#{key.to_s}")
|
412
|
+
assert_equal(expected, parameters[key.to_s], "parameters[#{key.to_s}]")
|
413
|
+
assert_equal(expected, parameters[key.to_sym], "parameters[#{key.to_sym}]")
|
414
|
+
end
|
415
|
+
|
416
|
+
def assert_level(parameters, results)
|
417
|
+
results.each do |key, value|
|
418
|
+
assert_all_access_equal(value, parameters, key)
|
419
|
+
end
|
420
|
+
|
421
|
+
assert_key_error(parameters, "0.0.0")
|
422
|
+
end
|
423
|
+
|
424
|
+
def assert_key_error(parameters, key)
|
425
|
+
assert_raises(KeyError) do
|
426
|
+
parameters[key]
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
428
430
|
def formats()
|
429
431
|
@@FORMATS
|
430
432
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Vagrant.configure("2") do |config|
|
2
|
+
config.user.defaults = {
|
3
|
+
nodes: [
|
4
|
+
{ip: '192.168.100.10'},
|
5
|
+
{ip: '192.168.100.11'}
|
6
|
+
]
|
7
|
+
}
|
8
|
+
|
9
|
+
config.user.nodes.each_with_index do |node, index|
|
10
|
+
puts "Node ##{index}, string: #{node['ip']}"
|
11
|
+
puts "Node ##{index}, symbol: #{node[:ip]}"
|
12
|
+
puts "Node ##{index}, method: #{node.ip}"
|
13
|
+
puts ""
|
14
|
+
end
|
15
|
+
end
|
@@ -2,14 +2,28 @@ Vagrant.configure("2") do |config|
|
|
2
2
|
config.user.defaults = {
|
3
3
|
'local' => {
|
4
4
|
'first' => "value1",
|
5
|
-
|
5
|
+
},
|
6
|
+
'array' => {
|
7
|
+
'level1' => [1, 2]
|
8
|
+
},
|
9
|
+
'application' => {
|
10
|
+
'users' => {
|
11
|
+
"joe" => {
|
12
|
+
:full => "Joe Plumber"
|
13
|
+
},
|
14
|
+
"jane" => {
|
15
|
+
:full => "Jane Cook"
|
16
|
+
},
|
17
|
+
}
|
6
18
|
}
|
7
19
|
}
|
8
20
|
|
9
|
-
config.user.
|
10
|
-
puts "
|
21
|
+
config.user.application.users.each do |key, data|
|
22
|
+
puts "Key #{key}: #{data}"
|
11
23
|
end
|
12
24
|
|
13
|
-
|
14
|
-
|
25
|
+
config.user.array_merge_strategy = :concat
|
26
|
+
config.user.auto_export = [:autoenv, :script]
|
27
|
+
|
28
|
+
config.vm.box = "opscode_centos-7.0_x86-64"
|
15
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nugrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthieu Vachon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- test/resources/json/params_user_nil_values.json
|
105
105
|
- test/resources/json/params_windows_eol.json
|
106
106
|
- test/resources/vagrantfiles/v2.auto_export
|
107
|
+
- test/resources/vagrantfiles/v2.bag_inside_array
|
107
108
|
- test/resources/vagrantfiles/v2.defaults_mixed_string_symbols
|
108
109
|
- test/resources/vagrantfiles/v2.defaults_null_values_in_vagrantuser
|
109
110
|
- test/resources/vagrantfiles/v2.defaults_using_string
|