tins 1.22.1 → 1.22.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/tins/hash_symbolize_keys_recursive.rb +10 -15
- data/lib/tins/version.rb +1 -1
- data/tests/hash_symbolize_keys_recursive_test.rb +2 -2
- data/tins.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d98c574e4a2321165f854cddc2e3cacb54813a22945dac1b6c0cc10fff28d05
|
4
|
+
data.tar.gz: 7ba8ad11309acef41f4564d544c866fb11660e75ddf440a3085ccb3988c438ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33d9e297e541044de4ffacdc94e4a8e63496b7ce7b712ed5bf759203a568d57637763c8abea8e491a45cccdce64380a8a9c37c727ce6e7c4e85ab3ab5aaf3fd9
|
7
|
+
data.tar.gz: 9cf3542730ac0ad631337bc30b374e942f4c47b9676d08193263693edf4628a9fe9f14145b28c864188a812f0606c3d2a1046261cbd81e0398e6a2ffe3f0b242
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.22.
|
1
|
+
1.22.2
|
@@ -22,28 +22,23 @@ module Tins
|
|
22
22
|
def _symbolize_keys_recursive(object, circular: nil)
|
23
23
|
case
|
24
24
|
when seen[object.__id__]
|
25
|
-
|
25
|
+
object = circular
|
26
26
|
when Hash === object
|
27
27
|
seen[object.__id__] = true
|
28
|
-
|
28
|
+
new_object = object.class.new
|
29
|
+
seen[new_object.__id__] = true
|
29
30
|
object.each do |k, v|
|
30
|
-
|
31
|
-
end
|
32
|
-
if object.frozen?
|
33
|
-
object = result
|
34
|
-
else
|
35
|
-
object.replace result
|
31
|
+
new_object[k.to_s.to_sym] = _symbolize_keys_recursive(v, circular: circular)
|
36
32
|
end
|
33
|
+
object = new_object
|
37
34
|
when Array === object
|
38
35
|
seen[object.__id__] = true
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
object = result
|
44
|
-
else
|
45
|
-
object.replace result
|
36
|
+
new_object = object.class.new(object.size)
|
37
|
+
seen[new_object.__id__] = true
|
38
|
+
object.each_with_index do |v, i|
|
39
|
+
new_object[i] = _symbolize_keys_recursive(v, circular: circular)
|
46
40
|
end
|
41
|
+
object = new_object
|
47
42
|
end
|
48
43
|
object
|
49
44
|
end
|
data/lib/tins/version.rb
CHANGED
@@ -31,7 +31,7 @@ module Tins
|
|
31
31
|
def test_symbolize_with_circular_array
|
32
32
|
circular_array = [].tap { |a| a << a }
|
33
33
|
assert_equal(
|
34
|
-
{ foo:
|
34
|
+
{ foo: [ nil ] },
|
35
35
|
{ 'foo' => circular_array }.symbolize_keys_recursive
|
36
36
|
)
|
37
37
|
assert_equal(
|
@@ -42,7 +42,7 @@ module Tins
|
|
42
42
|
|
43
43
|
def test_symbolize_with_circular_hash
|
44
44
|
circular_hash = {}.tap { |h| h['foo'] = h }
|
45
|
-
circular_hash_symbol = {}.tap { |h| h[:foo] =
|
45
|
+
circular_hash_symbol = {}.tap { |h| h[:foo] = nil }
|
46
46
|
assert_equal(
|
47
47
|
{ bar: circular_hash_symbol },
|
48
48
|
{ 'bar' => circular_hash }.symbolize_keys_recursive
|
data/tins.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: tins 1.22.
|
2
|
+
# stub: tins 1.22.2 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "tins".freeze
|
6
|
-
s.version = "1.22.
|
6
|
+
s.version = "1.22.2"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Florian Frank".freeze]
|
11
|
-
s.date = "2019-11-
|
11
|
+
s.date = "2019-11-13"
|
12
12
|
s.description = "All the stuff that isn't good/big enough for a real library.".freeze
|
13
13
|
s.email = "flori@ping.de".freeze
|
14
14
|
s.extra_rdoc_files = ["README.md".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.22.
|
4
|
+
version: 1.22.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Frank
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_hadar
|