module GraphQL::Schema::Member::HasArguments

Public Class Methods

extended(cls) click to toggle source
# File lib/graphql/schema/member/has_arguments.rb, line 10
def self.extended(cls)
  cls.extend(ArgumentClassAccessor)
end
included(cls) click to toggle source
# File lib/graphql/schema/member/has_arguments.rb, line 6
def self.included(cls)
  cls.extend(ArgumentClassAccessor)
end

Public Instance Methods

add_argument(arg_defn) click to toggle source

Register this argument with the class. @param arg_defn [GraphQL::Schema::Argument] @return [GraphQL::Schema::Argument]

# File lib/graphql/schema/member/has_arguments.rb, line 25
def add_argument(arg_defn)
  own_arguments[arg_defn.name] = arg_defn
  arg_defn
end
argument(*args, **kwargs, &block) click to toggle source

@see {GraphQL::Schema::Argument#initialize} for parameters @return [GraphQL::Schema::Argument] An instance of {arguments_class}, created from `*args`

# File lib/graphql/schema/member/has_arguments.rb, line 16
def argument(*args, **kwargs, &block)
  kwargs[:owner] = self
  arg_defn = self.argument_class.new(*args, **kwargs, &block)
  add_argument(arg_defn)
end
argument_class(new_arg_class = nil) click to toggle source

@param new_arg_class [Class] A class to use for building argument definitions

# File lib/graphql/schema/member/has_arguments.rb, line 38
def argument_class(new_arg_class = nil)
  self.class.argument_class(new_arg_class)
end
arguments() click to toggle source

@return [Hash<String => GraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions

# File lib/graphql/schema/member/has_arguments.rb, line 31
def arguments
  inherited_arguments = ((self.is_a?(Class) && superclass.respond_to?(:arguments)) ? superclass.arguments : {})
  # Local definitions override inherited ones
  inherited_arguments.merge(own_arguments)
end
own_arguments() click to toggle source
# File lib/graphql/schema/member/has_arguments.rb, line 52
def own_arguments
  @own_arguments ||= {}
end