class GraphQL::Argument

@api deprecated

def self.deep_stringify(val)

Other tags:
    Api: - private
def self.deep_stringify(val)
  case val
  when Array
    val.map { |v| deep_stringify(v) }
  when Hash
    new_val = {}
    val.each do |k, v|
      new_val[k.to_s] = deep_stringify(v)
    end
    new_val
  else
    val
  end
end

def self.from_dsl(name, type_or_argument = nil, description = nil, default_value: NO_DEFAULT_VALUE, as: nil, prepare: DefaultPrepare, **kwargs, &block)

Other tags:
    Api: - private
def self.from_dsl(name, type_or_argument = nil, description = nil, default_value: NO_DEFAULT_VALUE, as: nil, prepare: DefaultPrepare, **kwargs, &block)
  name_s = name.to_s
  # Move some positional args into keywords if they're present
  description && kwargs[:description] ||= description
  kwargs[:name] ||= name_s
  kwargs[:default_value] ||= default_value
  kwargs[:as] ||= as
  unless prepare == DefaultPrepare
    kwargs[:prepare] ||= prepare
  end
  if !type_or_argument.nil? && !type_or_argument.is_a?(GraphQL::Argument)
    # Maybe a string, proc or BaseType
    kwargs[:type] = type_or_argument
  end
  if type_or_argument.is_a?(GraphQL::Argument)
    type_or_argument.redefine(**kwargs, &block)
  else
    GraphQL::Argument.define(**kwargs, &block)
  end
end

def default_value=(new_default_value)

def default_value=(new_default_value)
  if new_default_value == NO_DEFAULT_VALUE
    @has_default_value = false
    @default_value = nil
  else
    @has_default_value = true
    @default_value = GraphQL::Argument.deep_stringify(new_default_value)
  end
end

def default_value?

def default_value?
  !!@has_default_value
end

def expose_as

Returns:
  • (String) - The name of this argument inside `resolve` functions
def expose_as
  @expose_as ||= (@as || @name).to_s
end

def initialize

def initialize
  @prepare_proc = DefaultPrepare
end

def initialize_copy(other)

def initialize_copy(other)
  @expose_as = nil
end

def keyword

Backport this to support legacy-style directives
def keyword
  @keyword ||= GraphQL::Schema::Member::BuildType.underscore(expose_as).to_sym
end

def method_access?

def method_access?
  # Treat unset as true -- only `false` should override
  @method_access != false
end

def prepare(value, ctx)

Returns:
  • (Object) - The prepared `value` for this argument or `value` itself if no `prepare` function exists.

Parameters:
  • ctx (GraphQL::Query::Context) --
  • value (Object) -- The incoming value from variables or query string literal
def prepare(value, ctx)
  @prepare_proc.call(value, ctx)
end

def prepare=(prepare_proc)

Parameters:
  • prepare_proc (#) -- ]
def prepare=(prepare_proc)
  @prepare_proc = BackwardsCompatibility.wrap_arity(prepare_proc, from: 1, to: 2, name: "Argument#prepare(value, ctx)")
end

def type

Returns:

  • (GraphQL::BaseType) - the input type for this argument
def type
  @clean_type ||= GraphQL::BaseType.resolve_related_type(@dirty_type)
end

def type=(new_input_type)

Parameters:
  • new_input_type (GraphQL::BaseType, Proc) -- Assign a new input type for this argument (if it's a proc, it will be called after schema initialization)
def type=(new_input_type)
  @clean_type = nil
  @dirty_type = new_input_type
end

def type_class

def type_class
  metadata[:type_class]
end