module GraphQL::Schema::Member::HasArguments

def self.extended(cls)

def self.extended(cls)
  cls.extend(ArgumentClassAccessor)
  cls.include(ArgumentObjectLoader)
end

def self.included(cls)

def self.included(cls)
  cls.extend(ArgumentClassAccessor)
  cls.include(ArgumentObjectLoader)
end

def add_argument(arg_defn)

Returns:
  • (GraphQL::Schema::Argument) -

Parameters:
  • arg_defn (GraphQL::Schema::Argument) --
def add_argument(arg_defn)
  own_arguments[arg_defn.name] = arg_defn
  arg_defn
end

def argument(*args, **kwargs, &block)

Returns:
  • (GraphQL::Schema::Argument) - An instance of {arguments_class}, created from `*args`

Other tags:
    See: {GraphQL::Schema::Argument#initialize} - for parameters
def argument(*args, **kwargs, &block)
  kwargs[:owner] = self
  loads = kwargs[:loads]
  if loads
    name = args[0]
    name_as_string = name.to_s
    inferred_arg_name = case name_as_string
    when /_id$/
      name_as_string.sub(/_id$/, "").to_sym
    when /_ids$/
      name_as_string.sub(/_ids$/, "")
        .sub(/([^s])$/, "\\1s")
        .to_sym
    else
      name
    end
    kwargs[:as] ||= inferred_arg_name
  end
  arg_defn = self.argument_class.new(*args, **kwargs, &block)
  add_argument(arg_defn)
end

def argument_class(new_arg_class = nil)

Parameters:
  • new_arg_class (Class) -- A class to use for building argument definitions
def argument_class(new_arg_class = nil)
  self.class.argument_class(new_arg_class)
end

def arguments

Returns:
  • (Hash GraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions) - Hash GraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions
def arguments
  inherited_arguments = ((self.is_a?(Class) && superclass.respond_to?(:arguments)) ? superclass.arguments : nil)
  # Local definitions override inherited ones
  if inherited_arguments
    inherited_arguments.merge(own_arguments)
  else
    own_arguments
  end
end

def own_arguments

def own_arguments
  @own_arguments ||= {}
end