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)
-
(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)
-
(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)
-
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
-
(Hash
- HashGraphQL::Schema::Argument] Arguments defined on this thing, keyed by name. Includes inherited definitions) 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