coaster 1.3.16 → 1.3.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/coaster/util.rb +2 -2
- data/lib/coaster/version.rb +1 -1
- data/test/test_util.rb +5 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab2eb8291386db2096f9972b5094c8377337cf1ba33741222dc748959e9eb6c8
|
4
|
+
data.tar.gz: 599d8e3771f71618d5cd93b111bc04b68b61cd632bedb212e8070d61758462ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6700f6a695c28ca3d4eda360ccf651a5a35aa30568ad38f41e0e0992aeb3edd9cee94d23beab7e1f79e03f378553a7b09efbc278ce7090511dee9c046394e916
|
7
|
+
data.tar.gz: da224933981d1593c1ddf6318829ca63a6610dcf75535bd49a3c043a32ef604a074292c50da53e8ff5790e690ddc851bf6a9ea3e251ee2afcb6e0b3308b52be4
|
data/lib/coaster/util.rb
CHANGED
@@ -7,12 +7,12 @@ module Coaster
|
|
7
7
|
case object
|
8
8
|
when Hash
|
9
9
|
object.each_with_object({}) do |(key, value), memo|
|
10
|
-
memo.merge!(flatten_hashify(value, breadcrumbs: breadcrumbs + [key], include_array: include_array))
|
10
|
+
memo.merge!(flatten_hashify(value, delimiter: delimiter, breadcrumbs: breadcrumbs + [key], include_array: include_array))
|
11
11
|
end
|
12
12
|
when Array
|
13
13
|
if include_array
|
14
14
|
object.each.with_index(1).with_object({}) do |(element, ix), memo|
|
15
|
-
memo.merge!(flatten_hashify(element, breadcrumbs: breadcrumbs + [ix], include_array: include_array))
|
15
|
+
memo.merge!(flatten_hashify(element, delimiter: delimiter, breadcrumbs: breadcrumbs + [ix], include_array: include_array))
|
16
16
|
end
|
17
17
|
else
|
18
18
|
{breadcrumbs.join(delimiter) => object}
|
data/lib/coaster/version.rb
CHANGED
data/test/test_util.rb
CHANGED
@@ -20,5 +20,10 @@ module Coaster
|
|
20
20
|
res = Util.flatten_hashify([{a: 1}, 22, [33, 44], {b: {c: [33, {d: 4}]}}], include_array: true)
|
21
21
|
assert_equal({"1.a"=>1, "2"=>22, "3.1"=>33, "3.2"=>44, "4.b.c.1"=>33, "4.b.c.2.d"=>4}, res)
|
22
22
|
end
|
23
|
+
|
24
|
+
def test_flatten_hashify_delimiter
|
25
|
+
res = Util.flatten_hashify([{a: 1}, 22, [33, 44], {b: {c: [33, {d: 4}]}}], include_array: true, delimiter: '/')
|
26
|
+
assert_equal({"1/a"=>1, "2"=>22, "3/1"=>33, "3/2"=>44, "4/b/c/1"=>33, "4/b/c/2/d"=>4}, res)
|
27
|
+
end
|
23
28
|
end
|
24
29
|
end
|