Sha256: 3cc8e665ce3e259123cd2faed75670621d3afb5a5a3fb31d75b15b2ebd04f600

Contents?: true

Size: 875 Bytes

Versions: 5

Compression:

Stored size: 875 Bytes

Contents

# frozen_string_literal: true
module GraphQL
  class Schema
    class Argument
      include GraphQL::Schema::Member::CachedGraphQLDefinition

      NO_DEFAULT = :__no_default__

      attr_reader :name

      def initialize(arg_name, type_expr, desc = nil, required:, default_value: NO_DEFAULT)
        @name = arg_name.to_s
        @type_expr = type_expr
        @description = desc
        @null = !required
        @default_value = default_value
      end

      def to_graphql
        argument = GraphQL::Argument.new
        argument.name = Member::BuildType.camelize(@name)
        argument.type = -> {
          Member::BuildType.parse_type(@type_expr, null: @null)
        }
        argument.description = @description
        if NO_DEFAULT != @default_value
          argument.default_value = @default_value
        end
        argument
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
graphql-1.8.0.pre6 lib/graphql/schema/argument.rb
graphql-1.8.0.pre5 lib/graphql/schema/argument.rb
graphql-1.8.0.pre4 lib/graphql/schema/argument.rb
graphql-1.8.0.pre3 lib/graphql/schema/argument.rb
graphql-1.8.0.pre2 lib/graphql/schema/argument.rb