Class: MicrosoftKiotaSerializationJson::JsonSerializationWriter
- Inherits:
-
Object
- Object
- MicrosoftKiotaSerializationJson::JsonSerializationWriter
- Includes:
- MicrosoftKiotaAbstractions::SerializationWriter
- Defined in:
- lib/microsoft_kiota_serialization_json/json_serialization_writer.rb
Instance Attribute Summary collapse
-
#root_value ⇒ Object
readonly
Returns the value of attribute root_value.
-
#writer ⇒ Object
readonly
Returns the value of attribute writer.
Instance Method Summary collapse
- #get_serialized_content ⇒ Object
-
#initialize ⇒ JsonSerializationWriter
constructor
A new instance of JsonSerializationWriter.
- #root_value? ⇒ Boolean
-
#set_root_value(value) ⇒ Object
A composed type whose selected member is a primitive serializes the scalar as the whole document rather than as a member of an object, so a nil key means "this is the root".
- #write_additional_data(value) ⇒ Object
- #write_any_value(key, value) ⇒ Object
- #write_boolean_value(key, value) ⇒ Object
- #write_collection_of_object_values(key, values) ⇒ Object
- #write_collection_of_primitive_values(key, values) ⇒ Object
- #write_date_time_value(key, value) ⇒ Object
- #write_date_value(key, value) ⇒ Object
- #write_duration_value(key, value) ⇒ Object
- #write_enum_value(key, values) ⇒ Object
- #write_float_value(key, value) ⇒ Object
- #write_guid_value(key, value) ⇒ Object
- #write_number_value(key, value) ⇒ Object
- #write_object_value(key, value, *additional_values_to_merge) ⇒ Object
- #write_string_value(key, value) ⇒ Object
- #write_time_value(key, value) ⇒ Object
Constructor Details
#initialize ⇒ JsonSerializationWriter
Returns a new instance of JsonSerializationWriter.
13 14 15 16 17 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 13 def initialize @writer = {} @root_value = nil @has_root_value = false end |
Instance Attribute Details
#root_value ⇒ Object (readonly)
Returns the value of attribute root_value.
19 20 21 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 19 def root_value @root_value end |
#writer ⇒ Object (readonly)
Returns the value of attribute writer.
19 20 21 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 19 def writer @writer end |
Instance Method Details
#get_serialized_content ⇒ Object
130 131 132 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 130 def get_serialized_content (@has_root_value ? @root_value : @writer).to_json # TODO: encode to byte array to stay content type agnostic end |
#root_value? ⇒ Boolean
29 30 31 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 29 def root_value? @has_root_value end |
#set_root_value(value) ⇒ Object
A composed type whose selected member is a primitive serializes the scalar as the whole document rather than as a member of an object, so a nil key means "this is the root".
23 24 25 26 27 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 23 def set_root_value(value) @root_value = value @has_root_value = true value end |
#write_additional_data(value) ⇒ Object
134 135 136 137 138 139 140 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 134 def write_additional_data(value) return unless value value.each do |x, y| write_any_value(x, y) end end |
#write_any_value(key, value) ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 153 def write_any_value(key, value) if value if !value.nil? == value value elsif value.instance_of? String write_string_value(key, value) elsif value.instance_of? Integer write_number_value(key, value) elsif value.instance_of? Float write_float_value(key, value) elsif value.instance_of? DateTime write_date_time_value(key, value) elsif value.instance_of? Time write_time_value(key, value) elsif value.instance_of? Date write_date_value(key, value) elsif value.instance_of? MicrosoftKiotaAbstractions::ISODuration write_duration_value(key, value) elsif value.instance_of? Array write_collection_of_primitive_values(key, value) elsif value.is_a? Object value.to_s else raise StandardError, "encountered unknown value type during serialization #{value}" end else raise StandardError, 'no key included when writing json property' unless key @writer[key] = nil end end |
#write_boolean_value(key, value) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 40 def write_boolean_value(key, value) raise StandardError, 'no key or value included in write_boolean_value(key, value)' if key.nil? && value.nil? return set_root_value(value) if key.nil? @writer[key] = value end |
#write_collection_of_object_values(key, values) ⇒ Object
108 109 110 111 112 113 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 108 def write_collection_of_object_values(key, values) return unless values return values.map { |v| write_object_value(nil, v) } unless key @writer[key] = values.map { |v| object_value_hash(v) } end |
#write_collection_of_primitive_values(key, values) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 96 def write_collection_of_primitive_values(key, values) return unless values unless key return values.map do |v| write_any_value(nil, v) end end @writer[key] = values.map do |v| write_any_value(key, v) end end |
#write_date_time_value(key, value) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 82 def write_date_time_value(key, value) raise StandardError, 'no key or value included in write_date_time_value(key, value)' if !key && !value return value.strftime('%Y-%m-%dT%H:%M:%S%Z') unless key @writer[key] = (value.strftime('%Y-%m-%dT%H:%M:%S%Z') if value) end |
#write_date_value(key, value) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 68 def write_date_value(key, value) raise StandardError, 'no key or value included in write_date_value(key, value)' if !key && !value return value.strftime('%Y-%m-%d') unless key @writer[key] = (value.strftime('%Y-%m-%d') if value) end |
#write_duration_value(key, value) ⇒ Object
89 90 91 92 93 94 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 89 def write_duration_value(key, value) raise StandardError, 'no key or value included in write_duration_value(key, value)' if !key && !value return value.string unless key @writer[key] = (value.string if value) end |
#write_enum_value(key, values) ⇒ Object
126 127 128 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 126 def write_enum_value(key, values) write_string_value(key, values.to_s) end |
#write_float_value(key, value) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 54 def write_float_value(key, value) raise StandardError, 'no key or value included in write_float_value(key, value)' if key.nil? && value.nil? return set_root_value(value) if key.nil? @writer[key] = value end |
#write_guid_value(key, value) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 61 def write_guid_value(key, value) raise StandardError, 'no key or value included in write_guid_value(key, value)' if !key && !value return value.to_s unless key @writer[key] = (value.to_s if value) end |
#write_number_value(key, value) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 47 def write_number_value(key, value) raise StandardError, 'no key or value included in write_number_value(key, value)' if key.nil? && value.nil? return set_root_value(value) if key.nil? @writer[key] = value end |
#write_object_value(key, value, *additional_values_to_merge) ⇒ Object
115 116 117 118 119 120 121 122 123 124 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 115 def write_object_value(key, value, *additional_values_to_merge) values = [value, *additional_values_to_merge].compact return if values.empty? if key @writer[key] = object_value_hash(*values) else values.each { |v| v.serialize(self) } end end |
#write_string_value(key, value) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 33 def write_string_value(key, value) raise StandardError, 'no key or value included in write_string_value(key, value)' if key.nil? && value.nil? return set_root_value(value) if key.nil? @writer[key] = value end |
#write_time_value(key, value) ⇒ Object
75 76 77 78 79 80 |
# File 'lib/microsoft_kiota_serialization_json/json_serialization_writer.rb', line 75 def write_time_value(key, value) raise StandardError, 'no key or value included in write_time_value(key, value)' if !key && !value return value.strftime('%H:%M:%S%Z') unless key @writer[key] = (value.strftime('%H:%M:%S%Z') if value) end |