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 +4 -4
- data/lib/microsoft_kiota_serialization_json/json_parse_node.rb +24 -12
- data/lib/microsoft_kiota_serialization_json/json_serialization_writer.rb +41 -15
- data/lib/microsoft_kiota_serialization_json/version.rb +1 -1
- data/microsoft_kiota_serialization_json.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 99d3aaf3bb83a8c789383d853f1181377ee92db658f667fb110306995311e4c1
|
|
4
|
+
data.tar.gz: b7827075fc0b80e2d8bbc7bdb291d618aea39ed4df0a904545ec87e9cad15b6f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
135
|
-
|
|
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] =
|
|
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] =
|
|
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] =
|
|
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] =
|
|
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] =
|
|
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
|
-
|
|
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
|
|
@@ -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', '<
|
|
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.
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
45
|
+
version: 0.22.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: uuidtools
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|