self.parse

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