microsoft_kiota_serialization_json 0.10.0 → 0.18.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/Gemfile +3 -1
- data/Rakefile +2 -2
- data/lib/microsoft_kiota_serialization_json/json_parse_node.rb +12 -7
- data/lib/microsoft_kiota_serialization_json/json_parse_node_factory.rb +2 -0
- data/lib/microsoft_kiota_serialization_json/json_serialization_writer.rb +91 -147
- data/lib/microsoft_kiota_serialization_json/json_serialization_writer_factory.rb +2 -0
- data/lib/microsoft_kiota_serialization_json/version.rb +1 -1
- data/lib/microsoft_kiota_serialization_json.rb +5 -5
- data/microsoft_kiota_serialization_json.gemspec +14 -17
- metadata +24 -51
- data/.github/CODEOWNERS +0 -1
- data/.github/copilot-instructions.md +0 -25
- data/.github/dependabot.yml +0 -12
- data/.github/policies/kiota-serialization-json-ruby-branch-protection.yml +0 -40
- data/.github/policies/resourceManagement.yml +0 -101
- data/.github/release-please.yml +0 -3
- data/.github/workflows/auto-merge-dependabot.yml +0 -33
- data/.github/workflows/code-ql.yml +0 -77
- data/.github/workflows/conflicting-pr-label.yml +0 -39
- data/.github/workflows/release-please-gha.yml +0 -49
- data/.github/workflows/release.yml +0 -36
- data/.github/workflows/ruby.yml +0 -48
- data/.gitignore +0 -58
- data/.release-please-manifest.json +0 -3
- data/CHANGELOG.md +0 -57
- data/CODE_OF_CONDUCT.md +0 -10
- data/CONTRIBUTING.md +0 -56
- data/LICENSE +0 -21
- data/README.md +0 -53
- data/SECURITY.md +0 -41
- data/SUPPORT.md +0 -25
- data/release-please-config.json +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 03c2671ff8b81e0982ff03b15285dfae320222b7c28e3b9ff2281203a4bf4595
|
|
4
|
+
data.tar.gz: 434eca2c601a3a57b9dffee91e5e82027c5c85b3373e25005ea0199e5852831c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 133b184021bf30144feee69a1aaded931e843152f954020266fede9ef0c26bdb673fc27c6d6665f4b738ea60705576528267334aaafa362dc01edda229146c44
|
|
7
|
+
data.tar.gz: b0afcd96b99e13f7dbfd006b3221901386c9b31a8f54e418ae8446e96a30f48968b032b0ca532d929e7f0d3b1e9dc3f514b44fdbaf8e9ff8e87794fd514ebe1f
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'time'
|
|
2
4
|
require 'date'
|
|
3
5
|
require 'json'
|
|
4
6
|
require 'uuidtools'
|
|
5
7
|
require 'microsoft_kiota_abstractions'
|
|
6
8
|
|
|
7
|
-
|
|
8
9
|
module MicrosoftKiotaSerializationJson
|
|
9
10
|
class JsonParseNode
|
|
10
11
|
include MicrosoftKiotaAbstractions::ParseNode
|
|
12
|
+
|
|
11
13
|
def initialize(node)
|
|
12
14
|
@current_node = node
|
|
13
15
|
end
|
|
@@ -36,15 +38,15 @@ module MicrosoftKiotaSerializationJson
|
|
|
36
38
|
Date.parse(@current_node)
|
|
37
39
|
end
|
|
38
40
|
|
|
39
|
-
def get_time_value
|
|
41
|
+
def get_time_value
|
|
40
42
|
Time.parse(@current_node)
|
|
41
43
|
end
|
|
42
44
|
|
|
43
|
-
def get_date_time_value
|
|
45
|
+
def get_date_time_value
|
|
44
46
|
DateTime.parse(@current_node)
|
|
45
47
|
end
|
|
46
48
|
|
|
47
|
-
def get_duration_value
|
|
49
|
+
def get_duration_value
|
|
48
50
|
MicrosoftKiotaAbstractions::ISODuration.new(@current_node)
|
|
49
51
|
end
|
|
50
52
|
|
|
@@ -60,7 +62,7 @@ module MicrosoftKiotaSerializationJson
|
|
|
60
62
|
current_parse_node.get_float_value
|
|
61
63
|
when Integer
|
|
62
64
|
current_parse_node.get_float_value
|
|
63
|
-
when
|
|
65
|
+
when 'Boolean'
|
|
64
66
|
current_parse_node.get_float_value
|
|
65
67
|
when DateTime
|
|
66
68
|
current_parse_node.get_date_time_value
|
|
@@ -82,6 +84,7 @@ module MicrosoftKiotaSerializationJson
|
|
|
82
84
|
|
|
83
85
|
def get_collection_of_object_values(factory)
|
|
84
86
|
raise StandardError, 'Factory cannot be null' if factory.nil?
|
|
87
|
+
|
|
85
88
|
@current_node.map do |object|
|
|
86
89
|
next if object.nil?
|
|
87
90
|
|
|
@@ -92,6 +95,7 @@ module MicrosoftKiotaSerializationJson
|
|
|
92
95
|
|
|
93
96
|
def get_object_value(factory)
|
|
94
97
|
raise StandardError, 'Factory cannot be null' if factory.nil?
|
|
98
|
+
|
|
95
99
|
item = factory.call(self)
|
|
96
100
|
assign_field_values(item)
|
|
97
101
|
item
|
|
@@ -110,7 +114,7 @@ module MicrosoftKiotaSerializationJson
|
|
|
110
114
|
elsif item.additional_data
|
|
111
115
|
item.additional_data[k] = v
|
|
112
116
|
else
|
|
113
|
-
item.additional_data = Hash.new(k => v)
|
|
117
|
+
item.additional_data = Hash.new({ k => v })
|
|
114
118
|
end
|
|
115
119
|
end
|
|
116
120
|
end
|
|
@@ -127,8 +131,9 @@ module MicrosoftKiotaSerializationJson
|
|
|
127
131
|
|
|
128
132
|
def get_child_node(name)
|
|
129
133
|
raise StandardError, 'Name cannot be null' if name.nil? || name.empty?
|
|
134
|
+
|
|
130
135
|
raw_value = @current_node[name]
|
|
131
|
-
|
|
136
|
+
JsonParseNode.new(raw_value) if raw_value
|
|
132
137
|
end
|
|
133
138
|
end
|
|
134
139
|
end
|
|
@@ -1,227 +1,171 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'time'
|
|
2
4
|
require 'date'
|
|
3
5
|
require 'json'
|
|
4
|
-
require
|
|
6
|
+
require 'uuidtools'
|
|
5
7
|
require 'microsoft_kiota_abstractions'
|
|
6
8
|
|
|
7
9
|
module MicrosoftKiotaSerializationJson
|
|
8
10
|
class JsonSerializationWriter
|
|
9
11
|
include MicrosoftKiotaAbstractions::SerializationWriter
|
|
10
|
-
@writer
|
|
11
12
|
|
|
12
|
-
def initialize
|
|
13
|
-
@writer =
|
|
13
|
+
def initialize
|
|
14
|
+
@writer = {}
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
@writer
|
|
18
|
-
end
|
|
17
|
+
attr_reader :writer
|
|
19
18
|
|
|
20
19
|
def write_string_value(key, value)
|
|
21
|
-
if !key && !value
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return value.to_s
|
|
26
|
-
end
|
|
27
|
-
if !value
|
|
28
|
-
@writer[key] = nil
|
|
29
|
-
else
|
|
30
|
-
@writer[key] = value
|
|
31
|
-
end
|
|
20
|
+
raise StandardError, 'no key or value included in write_string_value(key, value)' if !key && !value
|
|
21
|
+
return value.to_s unless key
|
|
22
|
+
|
|
23
|
+
@writer[key] = (value || nil)
|
|
32
24
|
end
|
|
33
25
|
|
|
34
26
|
def write_boolean_value(key, value)
|
|
35
|
-
if !key && !value
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if !key
|
|
39
|
-
return value
|
|
40
|
-
end
|
|
27
|
+
raise StandardError, 'no key or value included in write_boolean_value(key, value)' if !key && !value
|
|
28
|
+
return value unless key
|
|
29
|
+
|
|
41
30
|
@writer[key] = value
|
|
42
31
|
end
|
|
43
32
|
|
|
44
33
|
def write_number_value(key, value)
|
|
45
|
-
if !key && !value
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if !key
|
|
49
|
-
return value
|
|
50
|
-
end
|
|
34
|
+
raise StandardError, 'no key or value included in write_number_value(key, value)' if !key && !value
|
|
35
|
+
return value unless key
|
|
36
|
+
|
|
51
37
|
@writer[key] = value
|
|
52
38
|
end
|
|
53
39
|
|
|
54
40
|
def write_float_value(key, value)
|
|
55
|
-
if !key && !value
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if !key
|
|
59
|
-
return value
|
|
60
|
-
end
|
|
41
|
+
raise StandardError, 'no key or value included in write_float_value(key, value)' if !key && !value
|
|
42
|
+
return value unless key
|
|
43
|
+
|
|
61
44
|
@writer[key] = value
|
|
62
45
|
end
|
|
63
46
|
|
|
64
47
|
def write_guid_value(key, value)
|
|
65
|
-
if !key && !value
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if
|
|
69
|
-
return value.to_s
|
|
70
|
-
end
|
|
71
|
-
if !value
|
|
72
|
-
@writer[key] = nil
|
|
73
|
-
else
|
|
74
|
-
@writer[key] = value.to_s
|
|
75
|
-
end
|
|
48
|
+
raise StandardError, 'no key or value included in write_guid_value(key, value)' if !key && !value
|
|
49
|
+
return value.to_s unless key
|
|
50
|
+
|
|
51
|
+
@writer[key] = (value.to_s if value)
|
|
76
52
|
end
|
|
77
53
|
|
|
78
54
|
def write_date_value(key, value)
|
|
79
|
-
if !key && !value
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if
|
|
83
|
-
return value.strftime("%Y-%m-%d")
|
|
84
|
-
end
|
|
85
|
-
if !value
|
|
86
|
-
@writer[key] = nil
|
|
87
|
-
else
|
|
88
|
-
@writer[key] = value.strftime("%Y-%m-%d")
|
|
89
|
-
end
|
|
55
|
+
raise StandardError, 'no key or value included in write_date_value(key, value)' if !key && !value
|
|
56
|
+
return value.strftime('%Y-%m-%d') unless key
|
|
57
|
+
|
|
58
|
+
@writer[key] = (value.strftime('%Y-%m-%d') if value)
|
|
90
59
|
end
|
|
91
60
|
|
|
92
61
|
def write_time_value(key, value)
|
|
93
|
-
if !key && !value
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if
|
|
97
|
-
return value.strftime("%H:%M:%S%Z")
|
|
98
|
-
end
|
|
99
|
-
if !value
|
|
100
|
-
@writer[key] = nil
|
|
101
|
-
else
|
|
102
|
-
@writer[key] = value.strftime("%H:%M:%S%Z")
|
|
103
|
-
end
|
|
62
|
+
raise StandardError, 'no key or value included in write_time_value(key, value)' if !key && !value
|
|
63
|
+
return value.strftime('%H:%M:%S%Z') unless key
|
|
64
|
+
|
|
65
|
+
@writer[key] = (value.strftime('%H:%M:%S%Z') if value)
|
|
104
66
|
end
|
|
105
67
|
|
|
106
68
|
def write_date_time_value(key, value)
|
|
107
|
-
if !key && !value
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if
|
|
111
|
-
return value.strftime("%Y-%m-%dT%H:%M:%S%Z")
|
|
112
|
-
end
|
|
113
|
-
if !value
|
|
114
|
-
@writer[key] = nil
|
|
115
|
-
else
|
|
116
|
-
@writer[key] = value.strftime("%Y-%m-%dT%H:%M:%S%Z")
|
|
117
|
-
end
|
|
69
|
+
raise StandardError, 'no key or value included in write_date_time_value(key, value)' if !key && !value
|
|
70
|
+
return value.strftime('%Y-%m-%dT%H:%M:%S%Z') unless key
|
|
71
|
+
|
|
72
|
+
@writer[key] = (value.strftime('%Y-%m-%dT%H:%M:%S%Z') if value)
|
|
118
73
|
end
|
|
119
74
|
|
|
120
75
|
def write_duration_value(key, value)
|
|
121
|
-
if !key && !value
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if
|
|
125
|
-
return value.string
|
|
126
|
-
end
|
|
127
|
-
if !value
|
|
128
|
-
@writer[key] = nil
|
|
129
|
-
else
|
|
130
|
-
@writer[key] = value.string
|
|
131
|
-
end
|
|
76
|
+
raise StandardError, 'no key or value included in write_duration_value(key, value)' if !key && !value
|
|
77
|
+
return value.string unless key
|
|
78
|
+
|
|
79
|
+
@writer[key] = (value.string if value)
|
|
132
80
|
end
|
|
133
81
|
|
|
134
82
|
def write_collection_of_primitive_values(key, values)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
@writer[key] = values.map do |v|
|
|
142
|
-
self.write_any_value(key, v)
|
|
83
|
+
return unless values
|
|
84
|
+
unless key
|
|
85
|
+
return values.map do |v|
|
|
86
|
+
write_any_value(nil, v)
|
|
143
87
|
end
|
|
144
88
|
end
|
|
89
|
+
@writer[key] = values.map do |v|
|
|
90
|
+
write_any_value(key, v)
|
|
91
|
+
end
|
|
145
92
|
end
|
|
146
93
|
|
|
147
94
|
def write_collection_of_object_values(key, values)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
@writer[key] = values.map do |v|
|
|
155
|
-
self.write_object_value(nil, v).writer
|
|
156
|
-
end
|
|
157
|
-
end
|
|
95
|
+
return unless values
|
|
96
|
+
return values.map { |v| write_object_value(nil, v) } unless key
|
|
97
|
+
|
|
98
|
+
@writer[key] = values.map { |v| object_value_hash(v) }
|
|
158
99
|
end
|
|
159
100
|
|
|
160
|
-
def write_object_value(key, value)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
temp = JsonSerializationWriter.new()
|
|
169
|
-
value.serialize(temp)
|
|
170
|
-
@writer[key] = temp.writer
|
|
171
|
-
rescue StandardError => e
|
|
172
|
-
raise e.class, "no key or value included in write_boolean_value(key, value)"
|
|
173
|
-
end
|
|
101
|
+
def write_object_value(key, value, *additional_values_to_merge)
|
|
102
|
+
return unless value
|
|
103
|
+
|
|
104
|
+
if key
|
|
105
|
+
@writer[key] = object_value_hash(value, *additional_values_to_merge)
|
|
106
|
+
else
|
|
107
|
+
value.serialize(self)
|
|
108
|
+
additional_values_to_merge.each { |v| v&.serialize(self) }
|
|
174
109
|
end
|
|
175
110
|
end
|
|
176
111
|
|
|
177
112
|
def write_enum_value(key, values)
|
|
178
|
-
|
|
113
|
+
write_string_value(key, values.to_s)
|
|
179
114
|
end
|
|
180
115
|
|
|
181
|
-
def get_serialized_content
|
|
182
|
-
|
|
116
|
+
def get_serialized_content
|
|
117
|
+
@writer.to_json # TODO: encode to byte array to stay content type agnostic
|
|
183
118
|
end
|
|
184
119
|
|
|
185
120
|
def write_additional_data(value)
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
end
|
|
121
|
+
return unless value
|
|
122
|
+
|
|
189
123
|
value.each do |x, y|
|
|
190
|
-
|
|
124
|
+
write_any_value(x, y)
|
|
191
125
|
end
|
|
192
126
|
end
|
|
193
127
|
|
|
128
|
+
private
|
|
129
|
+
|
|
130
|
+
def object_value_hash(value, *additional_values_to_merge)
|
|
131
|
+
temp = JsonSerializationWriter.new
|
|
132
|
+
value.serialize(temp)
|
|
133
|
+
additional_values_to_merge.each { |v| v&.serialize(temp) }
|
|
134
|
+
temp.writer
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
public
|
|
138
|
+
|
|
194
139
|
def write_any_value(key, value)
|
|
195
140
|
if value
|
|
196
|
-
if
|
|
197
|
-
|
|
141
|
+
if !value.nil? == value
|
|
142
|
+
value
|
|
198
143
|
elsif value.instance_of? String
|
|
199
|
-
|
|
144
|
+
write_string_value(key, value)
|
|
200
145
|
elsif value.instance_of? Integer
|
|
201
|
-
|
|
146
|
+
write_number_value(key, value)
|
|
202
147
|
elsif value.instance_of? Float
|
|
203
|
-
|
|
148
|
+
write_float_value(key, value)
|
|
204
149
|
elsif value.instance_of? DateTime
|
|
205
|
-
|
|
150
|
+
write_date_time_value(key, value)
|
|
206
151
|
elsif value.instance_of? Time
|
|
207
|
-
|
|
152
|
+
write_time_value(key, value)
|
|
208
153
|
elsif value.instance_of? Date
|
|
209
|
-
|
|
154
|
+
write_date_value(key, value)
|
|
210
155
|
elsif value.instance_of? MicrosoftKiotaAbstractions::ISODuration
|
|
211
|
-
|
|
156
|
+
write_duration_value(key, value)
|
|
212
157
|
elsif value.instance_of? Array
|
|
213
|
-
|
|
158
|
+
write_collection_of_primitive_values(key, value)
|
|
214
159
|
elsif value.is_a? Object
|
|
215
|
-
|
|
160
|
+
value.to_s
|
|
216
161
|
else
|
|
217
|
-
raise StandardError, "encountered unknown value type during serialization #{value
|
|
162
|
+
raise StandardError, "encountered unknown value type during serialization #{value}"
|
|
218
163
|
end
|
|
219
164
|
else
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
end
|
|
165
|
+
raise StandardError, 'no key included when writing json property' unless key
|
|
166
|
+
|
|
167
|
+
@writer[key] = nil
|
|
168
|
+
|
|
225
169
|
end
|
|
226
170
|
end
|
|
227
171
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
3
|
+
require_relative 'microsoft_kiota_serialization_json/json_parse_node'
|
|
4
|
+
require_relative 'microsoft_kiota_serialization_json/json_parse_node_factory'
|
|
5
|
+
require_relative 'microsoft_kiota_serialization_json/json_serialization_writer'
|
|
6
|
+
require_relative 'microsoft_kiota_serialization_json/json_serialization_writer_factory'
|
|
7
|
+
require_relative 'microsoft_kiota_serialization_json/version'
|
|
8
8
|
|
|
9
9
|
module MicrosoftKiotaSerializationJson
|
|
10
10
|
end
|
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
3
|
+
require_relative 'lib/microsoft_kiota_serialization_json/version'
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name =
|
|
6
|
+
spec.name = 'microsoft_kiota_serialization_json'
|
|
7
7
|
spec.version = MicrosoftKiotaSerializationJson::VERSION
|
|
8
8
|
spec.authors = 'Microsoft Corporation'
|
|
9
|
-
spec.email = 'graphsdkpub@microsoft.com'
|
|
9
|
+
spec.email = 'graphsdkpub+ruby@microsoft.com'
|
|
10
10
|
spec.description = 'Implementation of Kiota Serialization interfaces for JSON'
|
|
11
11
|
spec.summary = 'Microsoft Kiota Serialization - Ruby serialization for building library agnostic http client'
|
|
12
|
-
spec.homepage = 'https://microsoft.
|
|
12
|
+
spec.homepage = 'https://learn.microsoft.com/openapi/kiota/'
|
|
13
13
|
spec.license = 'MIT'
|
|
14
14
|
spec.metadata = {
|
|
15
|
-
'bug_tracker_uri' => 'https://github.com/microsoft/kiota-
|
|
16
|
-
'changelog_uri'
|
|
17
|
-
'homepage_uri'
|
|
18
|
-
'source_code_uri' => 'https://github.com/microsoft/kiota-serialization
|
|
19
|
-
'github_repo'
|
|
15
|
+
'bug_tracker_uri' => 'https://github.com/microsoft/kiota-ruby/issues',
|
|
16
|
+
'changelog_uri' => 'https://github.com/microsoft/kiota-ruby/blob/main/CHANGELOG.md',
|
|
17
|
+
'homepage_uri' => spec.homepage,
|
|
18
|
+
'source_code_uri' => 'https://github.com/microsoft/kiota-ruby/tree/main/components/serialization/json',
|
|
19
|
+
'github_repo' => 'ssh://github.com/microsoft/kiota-ruby',
|
|
20
|
+
'rubygems_mfa_required' => 'true'
|
|
20
21
|
}
|
|
21
|
-
spec.required_ruby_version =
|
|
22
|
+
spec.required_ruby_version = '>= 3.3.0'
|
|
22
23
|
|
|
23
|
-
# Specify which files should be added to the gem when it is released.
|
|
24
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
25
24
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
26
25
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
27
26
|
end
|
|
28
|
-
|
|
29
27
|
spec.bindir = 'bin'
|
|
30
28
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
31
29
|
spec.require_paths = ['lib']
|
|
32
|
-
|
|
33
|
-
spec.
|
|
34
|
-
spec.
|
|
35
|
-
spec.add_runtime_dependency 'json', '>= 2.6.3', '< 2.20.0'
|
|
30
|
+
spec.add_dependency 'json', '>= 2.6.3', '< 2.22.0'
|
|
31
|
+
spec.add_dependency 'microsoft_kiota_abstractions', MicrosoftKiotaSerializationJson::VERSION
|
|
32
|
+
spec.add_dependency 'uuidtools', '>= 2.2', '< 3.1'
|
|
36
33
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
37
34
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
38
35
|
spec.add_development_dependency 'rubocop'
|