Class: Temporalio::Converters::PayloadConverter::JSONPlain
- Defined in:
- lib/temporalio/converters/payload_converter/json_plain.rb
Overview
Encoding for all values for json/plain
encoding.
Constant Summary collapse
- ENCODING =
'json/plain'
Instance Method Summary collapse
-
#encoding ⇒ String
Encoding that will be put on the payload metadata if this encoding converter can handle the value.
-
#from_payload(payload) ⇒ Object
Convert the payload to a Ruby value.
-
#initialize(parse_options: { create_additions: true }, generate_options: {}) ⇒ JSONPlain
constructor
Create JSONPlain converter.
-
#to_payload(value) ⇒ Api::Common::V1::Payload?
Convert value to payload if this encoding converter can handle it, or return
nil
.
Constructor Details
#initialize(parse_options: { create_additions: true }, generate_options: {}) ⇒ JSONPlain
Create JSONPlain converter.
18 19 20 21 22 |
# File 'lib/temporalio/converters/payload_converter/json_plain.rb', line 18 def initialize(parse_options: { create_additions: true }, generate_options: {}) super() @parse_options = @generate_options = end |
Instance Method Details
#encoding ⇒ String
Returns Encoding that will be put on the payload metadata if this encoding converter can handle the value.
25 26 27 |
# File 'lib/temporalio/converters/payload_converter/json_plain.rb', line 25 def encoding ENCODING end |
#from_payload(payload) ⇒ Object
Convert the payload to a Ruby value. The caller confirms the encoding
metadata matches #encoding, so this will error if it cannot convert.
38 39 40 |
# File 'lib/temporalio/converters/payload_converter/json_plain.rb', line 38 def from_payload(payload) JSON.parse(payload.data, @parse_options) end |
#to_payload(value) ⇒ Api::Common::V1::Payload?
Convert value to payload if this encoding converter can handle it, or return nil
. If the converter can handle it, the resulting payload must have encoding
metadata on the payload set to the value of #encoding.
30 31 32 33 34 35 |
# File 'lib/temporalio/converters/payload_converter/json_plain.rb', line 30 def to_payload(value) Api::Common::V1::Payload.new( metadata: { 'encoding' => ENCODING }, data: JSON.generate(value, @generate_options).b ) end |