microsoft_kiota_serialization_json 0.20.0 → 0.22.0

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: c8f2344ced8c7835492e23bed44767ead7ba90afed45752d6a5e84ebb5773371
4
- data.tar.gz: c08dac9dfb7a4a99fc05a089d4ea2b1d237c8258a7a63d6df8fc8962eda81d5f
3
+ metadata.gz: 99d3aaf3bb83a8c789383d853f1181377ee92db658f667fb110306995311e4c1
4
+ data.tar.gz: b7827075fc0b80e2d8bbc7bdb291d618aea39ed4df0a904545ec87e9cad15b6f
5
5
  SHA512:
6
- metadata.gz: d3e3e08f0e8f94987d5dca9873afeedeb1b834b7e1a0585f236f644d67147d91ef34c81924fbb9aba140c22a304c3f9cb3f811afd992825cfdc7a082c3761bee
7
- data.tar.gz: 366c826c2533a5851fd5bea038035361261583391f52d55529c8e3ddbd4703c41a76952f9f72e1daab1f444f7647f31ae7ffc0a66fac462ea760b01de11c1ffb
6
+ metadata.gz: 6ec0ac94f56351227acf2b01099cec17257e73f8302671ddf7175295a6aa0ee32efa3644aea3552a28b9640c6585135d6e4a2e769e7ae4daac08dfd0fe663d07
7
+ data.tar.gz: 89be60bd077fab8ece0ad40b7f94dc425ea7112a817dccee2829f399cc80b318dee46faea2f812e63d680d3b37f30d81d37debe1ed688737e16c2da6f354d477
@@ -108,31 +108,43 @@ module MicrosoftKiotaSerializationJson
108
108
  end
109
109
 
110
110
  def assign_field_values(item)
111
+ return unless @current_node.is_a?(Hash)
112
+
111
113
  fields = item.get_field_deserializers
112
114
  @current_node.each do |k, v|
113
115
  next if v.nil?
114
116
 
115
117
  deserializer = fields[k]
116
- if deserializer
117
- deserializer.call(JsonParseNode.new(v))
118
- elsif item.additional_data
119
- item.additional_data[k] = v
120
- else
121
- item.additional_data = Hash.new({ k => v })
122
- end
118
+ next deserializer.call(JsonParseNode.new(v)) if deserializer
119
+
120
+ additional_data = item.respond_to?(:additional_data) ? item.additional_data : nil
121
+ next if additional_data.nil?
122
+
123
+ additional_data[k] = v
123
124
  end
124
125
  end
125
126
 
126
- def get_enum_values(_type)
127
+ def get_enum_values(type)
127
128
  raw_values = get_string_value
128
- return [] if raw_values.nil?
129
+ return [] if raw_values.nil? || raw_values.empty?
129
130
 
130
- raw_values.split(',').map(&:strip)
131
+ raw_values.split(',').map { |raw| resolve_enum_member(type, raw.strip) }
131
132
  end
132
133
 
133
134
  def get_enum_value(type)
134
- items = get_enum_values(type).map(&:to_sym)
135
- items[0] if items.length.positive?
135
+ get_enum_values(type).first
136
+ end
137
+
138
+ def get_collection_of_enum_values(type)
139
+ return get_enum_values(type) unless @current_node.is_a?(Array)
140
+
141
+ @current_node.map { |value| JsonParseNode.new(value).get_enum_value(type) }
142
+ end
143
+
144
+ def resolve_enum_member(type, raw)
145
+ return raw.to_sym unless type.is_a?(Hash)
146
+
147
+ type[raw.to_sym] || type[(raw[0].to_s.upcase + raw[1..].to_s).to_sym]
136
148
  end
137
149
 
138
150
  def get_child_node(name)
@@ -33,6 +33,7 @@ module MicrosoftKiotaSerializationJson
33
33
  def write_string_value(key, value)
34
34
  raise StandardError, 'no key or value included in write_string_value(key, value)' if key.nil? && value.nil?
35
35
  return set_root_value(value) if key.nil?
36
+ return if value.nil?
36
37
 
37
38
  @writer[key] = value
38
39
  end
@@ -40,6 +41,7 @@ module MicrosoftKiotaSerializationJson
40
41
  def write_boolean_value(key, value)
41
42
  raise StandardError, 'no key or value included in write_boolean_value(key, value)' if key.nil? && value.nil?
42
43
  return set_root_value(value) if key.nil?
44
+ return if value.nil?
43
45
 
44
46
  @writer[key] = value
45
47
  end
@@ -47,6 +49,7 @@ module MicrosoftKiotaSerializationJson
47
49
  def write_number_value(key, value)
48
50
  raise StandardError, 'no key or value included in write_number_value(key, value)' if key.nil? && value.nil?
49
51
  return set_root_value(value) if key.nil?
52
+ return if value.nil?
50
53
 
51
54
  @writer[key] = value
52
55
  end
@@ -54,52 +57,55 @@ module MicrosoftKiotaSerializationJson
54
57
  def write_float_value(key, value)
55
58
  raise StandardError, 'no key or value included in write_float_value(key, value)' if key.nil? && value.nil?
56
59
  return set_root_value(value) if key.nil?
60
+ return if value.nil?
57
61
 
58
62
  @writer[key] = value
59
63
  end
60
64
 
61
65
  def write_guid_value(key, value)
62
66
  raise StandardError, 'no key or value included in write_guid_value(key, value)' if !key && !value
63
- return value.to_s unless key
67
+ return set_root_value(value.to_s) unless key
68
+ return if value.nil?
64
69
 
65
- @writer[key] = (value.to_s if value)
70
+ @writer[key] = value.to_s
66
71
  end
67
72
 
68
73
  def write_date_value(key, value)
69
74
  raise StandardError, 'no key or value included in write_date_value(key, value)' if !key && !value
70
- return value.strftime('%Y-%m-%d') unless key
75
+ return set_root_value(value.strftime('%Y-%m-%d')) unless key
76
+ return if value.nil?
71
77
 
72
- @writer[key] = (value.strftime('%Y-%m-%d') if value)
78
+ @writer[key] = value.strftime('%Y-%m-%d')
73
79
  end
74
80
 
75
81
  def write_time_value(key, value)
76
82
  raise StandardError, 'no key or value included in write_time_value(key, value)' if !key && !value
77
- return value.strftime('%H:%M:%S%Z') unless key
83
+ return set_root_value(value.strftime('%H:%M:%S%Z')) unless key
84
+ return if value.nil?
78
85
 
79
- @writer[key] = (value.strftime('%H:%M:%S%Z') if value)
86
+ @writer[key] = value.strftime('%H:%M:%S%Z')
80
87
  end
81
88
 
82
89
  def write_date_time_value(key, value)
83
90
  raise StandardError, 'no key or value included in write_date_time_value(key, value)' if !key && !value
84
- return value.strftime('%Y-%m-%dT%H:%M:%S%Z') unless key
91
+ return set_root_value(value.strftime('%Y-%m-%dT%H:%M:%S%Z')) unless key
92
+ return if value.nil?
85
93
 
86
- @writer[key] = (value.strftime('%Y-%m-%dT%H:%M:%S%Z') if value)
94
+ @writer[key] = value.strftime('%Y-%m-%dT%H:%M:%S%Z')
87
95
  end
88
96
 
89
97
  def write_duration_value(key, value)
90
98
  raise StandardError, 'no key or value included in write_duration_value(key, value)' if !key && !value
91
- return value.string unless key
99
+ return set_root_value(value.string) unless key
100
+ return if value.nil?
92
101
 
93
- @writer[key] = (value.string if value)
102
+ @writer[key] = value.string
94
103
  end
95
104
 
96
105
  def write_collection_of_primitive_values(key, values)
97
106
  return unless values
98
- unless key
99
- return values.map do |v|
100
- write_any_value(nil, v)
101
- end
102
- end
107
+ return set_root_value(values.map { |v| serialized_scalar(v) }) unless key
108
+
103
109
  @writer[key] = values.map do |v|
104
110
  write_any_value(key, v)
105
111
  end
@@ -123,7 +129,19 @@ module MicrosoftKiotaSerializationJson
123
129
  end
124
130
  end
125
131
 
132
+ def write_collection_of_enum_values(key, values)
133
+ return unless values
134
+
135
+ serialized = values.compact.map(&:to_s)
136
+ return set_root_value(serialized) unless key
137
+
138
+ @writer[key] = serialized
139
+ end
140
+
126
141
  def write_enum_value(key, values)
142
+ raise StandardError, 'no key or value included in write_enum_value(key, values)' if key.nil? && values.nil?
143
+ return if values.nil?
144
+
127
145
  write_string_value(key, values.to_s)
128
146
  end
129
147
 
@@ -150,6 +168,14 @@ module MicrosoftKiotaSerializationJson
150
168
 
151
169
  public
152
170
 
171
+ def serialized_scalar(value)
172
+ return value if value.nil? || value == true || value == false
173
+
174
+ temp = JsonSerializationWriter.new
175
+ result = temp.write_any_value(nil, value)
176
+ temp.root_value? ? temp.root_value : result
177
+ end
178
+
153
179
  def write_any_value(key, value)
154
180
  if value
155
181
  if !value.nil? == value
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MicrosoftKiotaSerializationJson
4
- VERSION = '0.20.0' # x-release-please-version
4
+ VERSION = '0.22.0' # x-release-please-version
5
5
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.bindir = 'bin'
28
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
- spec.add_dependency 'json', '>= 2.6.3', '< 2.22.0'
30
+ spec.add_dependency 'json', '>= 2.6.3', '< 3.1.0'
31
31
  spec.add_dependency 'microsoft_kiota_abstractions', MicrosoftKiotaSerializationJson::VERSION
32
32
  spec.add_dependency 'uuidtools', '>= 2.2', '< 3.1'
33
33
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microsoft_kiota_serialization_json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Microsoft Corporation
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: 2.6.3
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
- version: 2.22.0
21
+ version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,21 +28,21 @@ dependencies:
28
28
  version: 2.6.3
29
29
  - - "<"
30
30
  - !ruby/object:Gem::Version
31
- version: 2.22.0
31
+ version: 3.1.0
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: microsoft_kiota_abstractions
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
36
  - - '='
37
37
  - !ruby/object:Gem::Version
38
- version: 0.20.0
38
+ version: 0.22.0
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 0.20.0
45
+ version: 0.22.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: uuidtools
48
48
  requirement: !ruby/object:Gem::Requirement