self.build

in codegen/projections/rails_json/lib/rails_json/params.rb [628:678]


      def self.build(params, context: '')
        return params if params.is_a?(Types::MyUnion)
        Seahorse::Validator.validate!(params, ::Hash, Types::MyUnion, context: context)
        unless params.size == 1
          raise ArgumentError,
                "Expected #{context} to have exactly one member, got: #{params}"
        end
        key, value = params.flatten
        case key
        when :string_value
          Types::MyUnion::StringValue.new(
            params[:string_value]
          )
        when :boolean_value
          Types::MyUnion::BooleanValue.new(
            params[:boolean_value]
          )
        when :number_value
          Types::MyUnion::NumberValue.new(
            params[:number_value]
          )
        when :blob_value
          Types::MyUnion::BlobValue.new(
            params[:blob_value]
          )
        when :timestamp_value
          Types::MyUnion::TimestampValue.new(
            params[:timestamp_value]
          )
        when :enum_value
          Types::MyUnion::EnumValue.new(
            params[:enum_value]
          )
        when :list_value
          Types::MyUnion::ListValue.new(
            (StringList.build(params[:list_value], context: "#{context}[:list_value]") unless params[:list_value].nil?)
          )
        when :map_value
          Types::MyUnion::MapValue.new(
            (StringMap.build(params[:map_value], context: "#{context}[:map_value]") unless params[:map_value].nil?)
          )
        when :structure_value
          Types::MyUnion::StructureValue.new(
            (GreetingStruct.build(params[:structure_value], context: "#{context}[:structure_value]") unless params[:structure_value].nil?)
          )
        else
          raise ArgumentError,
                "Expected #{context} to have one of :string_value, :boolean_value, :number_value, :blob_value, :timestamp_value, :enum_value, :list_value, :map_value, :structure_value set"
        end
      end