Module: GraphQL::Schema::Member::HasArguments::ClassConfigured::InheritedArguments Private

Defined in:
lib/graphql/schema/member/has_arguments.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Instance Method Summary collapse

Instance Method Details

#all_argument_definitionsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

[View source]

123
124
125
126
127
128
129
130
131
132
133
# File 'lib/graphql/schema/member/has_arguments.rb', line 123

def all_argument_definitions
  all_defns = {}
  ancestors.reverse_each do |ancestor|
    if ancestor.respond_to?(:own_arguments)
      all_defns.merge!(ancestor.own_arguments)
    end
  end
  all_defns = all_defns.values
  all_defns.flatten!
  all_defns
end

#any_arguments?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

[View source]

119
120
121
# File 'lib/graphql/schema/member/has_arguments.rb', line 119

def any_arguments?
  super || superclass.any_arguments?
end

#arguments(context = GraphQL::Query::NullContext.instance, require_defined_arguments = true) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

[View source]

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/graphql/schema/member/has_arguments.rb', line 103

def arguments(context = GraphQL::Query::NullContext.instance, require_defined_arguments = true)
  own_arguments = super(context, require_defined_arguments)
  inherited_arguments = superclass.arguments(context, false)

  if !own_arguments.empty?
    if !inherited_arguments.empty?
      # Local definitions override inherited ones
      inherited_arguments.merge(own_arguments)
    else
      own_arguments
    end
  else
    inherited_arguments
  end
end

#get_argument(argument_name, context = GraphQL::Query::NullContext.instance) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

[View source]

136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/graphql/schema/member/has_arguments.rb', line 136

def get_argument(argument_name, context = GraphQL::Query::NullContext.instance)
  warden = Warden.from_context(context)
  skip_visible = context.respond_to?(:types) && context.types.is_a?(GraphQL::Schema::Visibility::Profile)
  for ancestor in ancestors
    if ancestor.respond_to?(:own_arguments) &&
      (a = ancestor.own_arguments[argument_name]) &&
      (skip_visible || (a = Warden.visible_entry?(:visible_argument?, a, context, warden)))
      return a
    end
  end
  nil
end