microsoft_kiota_serialization_json 0.21.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: f4c78759c2b5ddda66461cc4d08cf5eb57ceed877a2e5f04e2876f36fafe13e6
4
- data.tar.gz: c55852e6f0ef2cc369647881610f9eebcb94acc3295784f01b7334e6c05af187
3
+ metadata.gz: 99d3aaf3bb83a8c789383d853f1181377ee92db658f667fb110306995311e4c1
4
+ data.tar.gz: b7827075fc0b80e2d8bbc7bdb291d618aea39ed4df0a904545ec87e9cad15b6f
5
5
  SHA512:
6
- metadata.gz: 2e2d4b6678b50247a0098226cacc7693c4e6a26751cb8b5535ed34e8beb09c079a51bfc82fd6521953497c6c6131fd3d6bd71a23e335f518a6d165893e5da24a
7
- data.tar.gz: 977f31b44c36c56b196d14fd80a2dcc2555c04cbe1a6ef7d7cfa44a701f7aa1e84401893b0d8d9dc78d3f3700c79b303f86e09f84e00fd01f1a5c0793333c260
6
+ metadata.gz: 6ec0ac94f56351227acf2b01099cec17257e73f8302671ddf7175295a6aa0ee32efa3644aea3552a28b9640c6585135d6e4a2e769e7ae4daac08dfd0fe663d07
7
+ data.tar.gz: 89be60bd077fab8ece0ad40b7f94dc425ea7112a817dccee2829f399cc80b318dee46faea2f812e63d680d3b37f30d81d37debe1ed688737e16c2da6f354d477
@@ -124,16 +124,27 @@ module MicrosoftKiotaSerializationJson
124
124
  end
125
125
  end
126
126
 
127
- def get_enum_values(_type)
127
+ def get_enum_values(type)
128
128
  raw_values = get_string_value
129
- return [] if raw_values.nil?
129
+ return [] if raw_values.nil? || raw_values.empty?
130
130
 
131
- raw_values.split(',').map(&:strip)
131
+ raw_values.split(',').map { |raw| resolve_enum_member(type, raw.strip) }
132
132
  end
133
133
 
134
134
  def get_enum_value(type)
135
- items = get_enum_values(type).map(&:to_sym)
136
- 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]
137
148
  end
138
149
 
139
150
  def get_child_node(name)
@@ -64,7 +64,7 @@ module MicrosoftKiotaSerializationJson
64
64
 
65
65
  def write_guid_value(key, value)
66
66
  raise StandardError, 'no key or value included in write_guid_value(key, value)' if !key && !value
67
- return value.to_s unless key
67
+ return set_root_value(value.to_s) unless key
68
68
  return if value.nil?
69
69
 
70
70
  @writer[key] = value.to_s
@@ -72,7 +72,7 @@ module MicrosoftKiotaSerializationJson
72
72
 
73
73
  def write_date_value(key, value)
74
74
  raise StandardError, 'no key or value included in write_date_value(key, value)' if !key && !value
75
- return value.strftime('%Y-%m-%d') unless key
75
+ return set_root_value(value.strftime('%Y-%m-%d')) unless key
76
76
  return if value.nil?
77
77
 
78
78
  @writer[key] = value.strftime('%Y-%m-%d')
@@ -80,7 +80,7 @@ module MicrosoftKiotaSerializationJson
80
80
 
81
81
  def write_time_value(key, value)
82
82
  raise StandardError, 'no key or value included in write_time_value(key, value)' if !key && !value
83
- return value.strftime('%H:%M:%S%Z') unless key
83
+ return set_root_value(value.strftime('%H:%M:%S%Z')) unless key
84
84
  return if value.nil?
85
85
 
86
86
  @writer[key] = value.strftime('%H:%M:%S%Z')
@@ -88,7 +88,7 @@ module MicrosoftKiotaSerializationJson
88
88
 
89
89
  def write_date_time_value(key, value)
90
90
  raise StandardError, 'no key or value included in write_date_time_value(key, value)' if !key && !value
91
- 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
92
  return if value.nil?
93
93
 
94
94
  @writer[key] = value.strftime('%Y-%m-%dT%H:%M:%S%Z')
@@ -96,7 +96,7 @@ module MicrosoftKiotaSerializationJson
96
96
 
97
97
  def write_duration_value(key, value)
98
98
  raise StandardError, 'no key or value included in write_duration_value(key, value)' if !key && !value
99
- return value.string unless key
99
+ return set_root_value(value.string) unless key
100
100
  return if value.nil?
101
101
 
102
102
  @writer[key] = value.string
@@ -104,11 +104,8 @@ module MicrosoftKiotaSerializationJson
104
104
 
105
105
  def write_collection_of_primitive_values(key, values)
106
106
  return unless values
107
- unless key
108
- return values.map do |v|
109
- write_any_value(nil, v)
110
- end
111
- end
107
+ return set_root_value(values.map { |v| serialized_scalar(v) }) unless key
108
+
112
109
  @writer[key] = values.map do |v|
113
110
  write_any_value(key, v)
114
111
  end
@@ -132,6 +129,15 @@ module MicrosoftKiotaSerializationJson
132
129
  end
133
130
  end
134
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
+
135
141
  def write_enum_value(key, values)
136
142
  raise StandardError, 'no key or value included in write_enum_value(key, values)' if key.nil? && values.nil?
137
143
  return if values.nil?
@@ -162,6 +168,14 @@ module MicrosoftKiotaSerializationJson
162
168
 
163
169
  public
164
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
+
165
179
  def write_any_value(key, value)
166
180
  if value
167
181
  if !value.nil? == value
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MicrosoftKiotaSerializationJson
4
- VERSION = '0.21.0' # x-release-please-version
4
+ VERSION = '0.22.0' # x-release-please-version
5
5
  end
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.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Microsoft Corporation
@@ -35,14 +35,14 @@ dependencies:
35
35
  requirements:
36
36
  - - '='
37
37
  - !ruby/object:Gem::Version
38
- version: 0.21.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.21.0
45
+ version: 0.22.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: uuidtools
48
48
  requirement: !ruby/object:Gem::Requirement