userializer 0.3.7 → 0.3.8

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: 465f6016e60649a5d815b37284586765e23968ddb1fa2408d6770bae5fd4db0c
4
- data.tar.gz: 95504406ad1ef39085b7296ffa54e4b85d0fedf4910929138cb1abb925471a7d
3
+ metadata.gz: 82b55a7bfb0a68c186ad7c9026d562278cd24ec18e9a133f1aeed5e81cbb6678
4
+ data.tar.gz: f5b20444ea431280de74e8cc070279004fbcc0dade3fcf65f46b13667bbe209f
5
5
  SHA512:
6
- metadata.gz: d01f1cbac54d4f2c6bd32caf5571b5e5a92678b9bc68c5b6321bf89f836342ca96ff8df3822a78ff35fa14308da54ba13738e7fe30b76aa80ac174a4a7ac49b2
7
- data.tar.gz: f5e9200196c4b52f817b40fe63d65437185bc2c6165c3a20ae0067518a08d28cdb3acb4e2d68f8858747a484d29835d1d75174c7a497af8062b3072a612639da
6
+ metadata.gz: 34b273eeda892d83f0793765aa8c333d0aadbe9f85ef66dbf0ea1aca3f56311ebb0042cffe183729121be592ab165935937e74f9d57a81d160bc2358cd2d8427
7
+ data.tar.gz: 1affe46e232fa28bc620568d9dcff8849d0115f97f2e9a39440c15684a7ca41e300b4e8cdfaa9b1da709a817aaafa433f181a6b665bb3cdf029a39f198e45c71
@@ -4,10 +4,11 @@ module USerializer
4
4
  class HeterogeneousArray < StandardError; end
5
5
 
6
6
  class ArraySerializer
7
- def initialize(objs, opts = {})
7
+ def initialize(objs, opts = {}, embed_empty_array: false)
8
8
  @objs = objs.compact
9
9
  @opts = opts
10
10
  @meta = opts[:meta]
11
+ @embed_empty_array = embed_empty_array
11
12
 
12
13
  clss = @objs.map(&:class).uniq
13
14
  obj_class = clss.first
@@ -29,6 +30,7 @@ module USerializer
29
30
  end
30
31
 
31
32
  def merge_root(res, opts)
33
+ res[@root_key] ||= [] if @embed_empty_array
32
34
  @objs.each do |obj|
33
35
  serializer(obj, opts).merge_root(res, @root_key, false, opts)
34
36
  end
@@ -64,7 +64,7 @@ module USerializer
64
64
  if obj.is_a?(Hash) || !obj.is_a?(Enumerable)
65
65
  CompositeObject.new(obj, opts)
66
66
  else
67
- ArraySerializer.new(obj, opts)
67
+ ArraySerializer.new(obj, opts, embed_empty_array: true)
68
68
  end
69
69
  end
70
70
  end
@@ -1,3 +1,3 @@
1
1
  module USerializer
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: userializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexis Montagne
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-07-17 00:00:00.000000000 Z
10
+ date: 2025-07-21 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -110,7 +109,6 @@ files:
110
109
  homepage: https://github.com/upfluence/userializer
111
110
  licenses: []
112
111
  metadata: {}
113
- post_install_message:
114
112
  rdoc_options: []
115
113
  require_paths:
116
114
  - lib
@@ -125,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
123
  - !ruby/object:Gem::Version
126
124
  version: '0'
127
125
  requirements: []
128
- rubygems_version: 3.3.7
129
- signing_key:
126
+ rubygems_version: 3.6.2
130
127
  specification_version: 4
131
128
  summary: Write a short summary, because RubyGems requires one.
132
129
  test_files: []