in codegen/projections/rails_json/lib/rails_json/parsers.rb [562:596]
def self.parse(map)
key, value = map.flatten
case key
when 'string_value'
value = value
Types::MyUnion::StringValue.new(value) if value
when 'boolean_value'
value = value
Types::MyUnion::BooleanValue.new(value) if value
when 'number_value'
value = value
Types::MyUnion::NumberValue.new(value) if value
when 'blob_value'
value = Base64::decode64(value) unless value.nil?
Types::MyUnion::BlobValue.new(value) if value
when 'timestamp_value'
value = Time.parse(value) if value
Types::MyUnion::TimestampValue.new(value) if value
when 'enum_value'
value = value
Types::MyUnion::EnumValue.new(value) if value
when 'list_value'
value = (Parsers::StringList.parse(value) unless value.nil?)
Types::MyUnion::ListValue.new(value) if value
when 'map_value'
value = (Parsers::StringMap.parse(value) unless value.nil?)
Types::MyUnion::MapValue.new(value) if value
when 'structure_value'
value = (Parsers::GreetingStruct.parse(value) unless value.nil?)
Types::MyUnion::StructureValue.new(value) if value
else
Types::MyUnion::Unknown.new({name: key, value: value})
end
end