tins 1.22.1 → 1.22.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4eca5f634dc796062a53b38a97f8962615367b340f9e8f76ce7d9d29c70f25bf
4
- data.tar.gz: ea895d5750c29a7b8417e8a2e9740c718ff390810bf878871ffd84080b586243
3
+ metadata.gz: 3d98c574e4a2321165f854cddc2e3cacb54813a22945dac1b6c0cc10fff28d05
4
+ data.tar.gz: 7ba8ad11309acef41f4564d544c866fb11660e75ddf440a3085ccb3988c438ac
5
5
  SHA512:
6
- metadata.gz: 0a5d7a68bb4469117336cc8a9273048a4d0a0a0a6b8866b56464f9a1855c2ba6e6c8937e8725aeaa244c06eb9dadbdb2f2efd24f8a94a331531f4f5eac1f3fb3
7
- data.tar.gz: 0a15ad8a5dc67627a8eb3963459b2729f0e77389981fb3ed1d442f9cbaadf6201b80fa0e37a58e6293b334214b15fb5c05bcad799f223d202ecf2c7016dc7d51
6
+ metadata.gz: 33d9e297e541044de4ffacdc94e4a8e63496b7ce7b712ed5bf759203a568d57637763c8abea8e491a45cccdce64380a8a9c37c727ce6e7c4e85ab3ab5aaf3fd9
7
+ data.tar.gz: 9cf3542730ac0ad631337bc30b374e942f4c47b9676d08193263693edf4628a9fe9f14145b28c864188a812f0606c3d2a1046261cbd81e0398e6a2ffe3f0b242
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.22.1
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
- circular != nil and object = circular
25
+ object = circular
26
26
  when Hash === object
27
27
  seen[object.__id__] = true
28
- result = {}
28
+ new_object = object.class.new
29
+ seen[new_object.__id__] = true
29
30
  object.each do |k, v|
30
- result[k.to_s.to_sym] = _symbolize_keys_recursive(v, circular: circular)
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
- result = object.map do |v|
40
- _symbolize_keys_recursive(v, circular: circular)
41
- end
42
- if object.frozen?
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
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.22.1'
3
+ VERSION = '1.22.2'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -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: circular_array },
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] = h }
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
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.22.1 ruby lib
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.1"
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-12"
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.1
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-12 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar