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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d639bc65366dd996f9718322979d0a2016b7153f485a54e827e52872427bbb8a
4
- data.tar.gz: 8df1b983bf62a8ec269fca317f3813df3c4dc188cdba117507d4e36b35af9e96
3
+ metadata.gz: 03c2671ff8b81e0982ff03b15285dfae320222b7c28e3b9ff2281203a4bf4595
4
+ data.tar.gz: 434eca2c601a3a57b9dffee91e5e82027c5c85b3373e25005ea0199e5852831c
5
5
  SHA512:
6
- metadata.gz: 360f4f242b9da0b167bc690c839d773437368ac0388d9444cf8c5f42d658214359f7cd79f1f9b4c1e609028c5b9c53ed1ed649b72bf89e439fa8f6add3ef4a25
7
- data.tar.gz: 42566ba5d373ad2962479f8806168503ef40fbce1292a3546d0bcf39740585ba444b062f75ea98a284a2176f25a4acb87f74fd0bc6492e6ced9656556644e590
6
+ metadata.gz: 133b184021bf30144feee69a1aaded931e843152f954020266fede9ef0c26bdb673fc27c6d6665f4b738ea60705576528267334aaafa362dc01edda229146c44
7
+ data.tar.gz: b0afcd96b99e13f7dbfd006b3221901386c9b31a8f54e418ae8446e96a30f48968b032b0ca532d929e7f0d3b1e9dc3f514b44fdbaf8e9ff8e87794fd514ebe1f
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'microsoft_kiota_abstractions', path: '../../abstractions'
4
6
 
5
7
  gemspec
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
@@ -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 "Boolean"
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
- return JsonParseNode.new(raw_value) if raw_value
136
+ JsonParseNode.new(raw_value) if raw_value
132
137
  end
133
138
  end
134
139
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'microsoft_kiota_abstractions'
3
5
 
@@ -1,227 +1,171 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'time'
2
4
  require 'date'
3
5
  require 'json'
4
- require "uuidtools"
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 = Hash.new()
13
+ def initialize
14
+ @writer = {}
14
15
  end
15
16
 
16
- def writer
17
- @writer
18
- end
17
+ attr_reader :writer
19
18
 
20
19
  def write_string_value(key, value)
21
- if !key && !value
22
- raise StandardError, "no key or value included in write_string_value(key, value)"
23
- end
24
- if !key
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
- raise StandardError, "no key or value included in write_boolean_value(key, value)"
37
- end
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
- raise StandardError, "no key or value included in write_number_value(key, value)"
47
- end
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
- raise StandardError, "no key or value included in write_float_value(key, value)"
57
- end
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
- raise StandardError, "no key or value included in write_guid_value(key, value)"
67
- end
68
- if !key
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
- raise StandardError, "no key or value included in write_date_value(key, value)"
81
- end
82
- if !key
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
- raise StandardError, "no key or value included in write_time_value(key, value)"
95
- end
96
- if !key
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
- raise StandardError, "no key or value included in write_date_time_value(key, value)"
109
- end
110
- if !key
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
- raise StandardError, "no key or value included in write_duration_value(key, value)"
123
- end
124
- if !key
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
- if values
136
- if !key
137
- return values.map do |v|
138
- self.write_any_value(nil, v)
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
- if values
149
- if !key
150
- return values.map do |v|
151
- self.write_object_value(nil, v)
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
- if value
162
- if !key
163
- temp = JsonSerializationWriter.new()
164
- value.serialize(temp)
165
- return temp
166
- end
167
- begin
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
- self.write_string_value(key, values.to_s)
113
+ write_string_value(key, values.to_s)
179
114
  end
180
115
 
181
- def get_serialized_content()
182
- return @writer.to_json #TODO encode to byte array to stay content type agnostic
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
- if !value
187
- return
188
- end
121
+ return unless value
122
+
189
123
  value.each do |x, y|
190
- self.write_any_value(x,y)
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 !!value == value
197
- return value
141
+ if !value.nil? == value
142
+ value
198
143
  elsif value.instance_of? String
199
- return self.write_string_value(key, value)
144
+ write_string_value(key, value)
200
145
  elsif value.instance_of? Integer
201
- return self.write_number_value(key, value)
146
+ write_number_value(key, value)
202
147
  elsif value.instance_of? Float
203
- return self.write_float_value(key, value)
148
+ write_float_value(key, value)
204
149
  elsif value.instance_of? DateTime
205
- return self.write_date_time_value(key, value)
150
+ write_date_time_value(key, value)
206
151
  elsif value.instance_of? Time
207
- return self.write_time_value(key, value)
152
+ write_time_value(key, value)
208
153
  elsif value.instance_of? Date
209
- return self.write_date_value(key, value)
154
+ write_date_value(key, value)
210
155
  elsif value.instance_of? MicrosoftKiotaAbstractions::ISODuration
211
- return self.write_duration_value(key, value)
156
+ write_duration_value(key, value)
212
157
  elsif value.instance_of? Array
213
- return self.write_collection_of_primitive_values(key, value)
158
+ write_collection_of_primitive_values(key, value)
214
159
  elsif value.is_a? Object
215
- return value.to_s
160
+ value.to_s
216
161
  else
217
- raise StandardError, "encountered unknown value type during serialization #{value.to_s}"
162
+ raise StandardError, "encountered unknown value type during serialization #{value}"
218
163
  end
219
164
  else
220
- if key
221
- @writer[key] = nil
222
- else
223
- raise StandardError, "no key included when writing json property"
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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'microsoft_kiota_abstractions'
2
4
 
3
5
  module MicrosoftKiotaSerializationJson
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MicrosoftKiotaSerializationJson
4
- VERSION = "0.10.0"
4
+ VERSION = '0.18.0' # x-release-please-version
5
5
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
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"
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 "lib/microsoft_kiota_serialization_json/version"
3
+ require_relative 'lib/microsoft_kiota_serialization_json/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "microsoft_kiota_serialization_json"
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.github.io/kiota/'
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-serialization-json-ruby/issues',
16
- 'changelog_uri' => 'https://github.com/microsoft/kiota-serialization-json-ruby/blob/main/CHANGELOG.md',
17
- 'homepage_uri' => spec.homepage,
18
- 'source_code_uri' => 'https://github.com/microsoft/kiota-serialization-json-ruby',
19
- 'github_repo' => 'ssh://github.com/microsoft/kiota-serialization-json-ruby'
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 = ">= 3.3.0"
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.add_runtime_dependency 'microsoft_kiota_abstractions', '>= 0.14', '< 0.16'
34
- spec.add_runtime_dependency 'uuidtools', '>= 2.2', '< 3.1'
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'