module GraphQL::Define::InstanceDefinable::ClassMethods

Public Instance Methods

accepts_definitions(*accepts) click to toggle source

Attach definitions to this class. Each symbol in `accepts` will be assigned with `{key}=`. The last entry in accepts may be a hash of name-proc pairs for custom definitions.

# File lib/graphql/define/instance_definable.rb, line 169
        def accepts_definitions(*accepts)
          deprecated_caller = caller(0, 1).first
          if deprecated_caller.include?("lib/graphql")
            deprecated_caller = caller(2, 10).find { |c| !c.include?("lib/graphql") }
          end

          if deprecated_caller
            GraphQL::Deprecation.warn <<-ERR
#{self}.accepts_definitions will be removed in GraphQL-Ruby 2.0; use a class-based definition instead. See https://graphql-ruby.org/schema/class_based_api.html.
  -> called from #{deprecated_caller}
ERR
          end
          deprecated_accepts_definitions(*accepts)
        end
define(**kwargs, &block) click to toggle source

@api deprecated

# File lib/graphql/define/instance_definable.rb, line 160
def define(**kwargs, &block)
  instance = self.new
  instance.define(**kwargs, &block)
  instance
end
deprecated_accepts_definitions(*accepts) click to toggle source
# File lib/graphql/define/instance_definable.rb, line 184
def deprecated_accepts_definitions(*accepts)
  new_assignments = if accepts.last.is_a?(Hash)
    accepts.pop.dup
  else
    {}
  end

  accepts.each do |key|
    new_assignments[key] = AssignAttribute.new(key)
  end

  @own_dictionary = own_dictionary.merge(new_assignments)
end
deprecated_define(**kwargs, &block) click to toggle source

Create a new instance and prepare a definition using its {.definitions}. @api deprecated @param kwargs [Hash] Key-value pairs corresponding to defininitions from `accepts_definitions` @param block [Proc] Block which calls helper methods from `accepts_definitions`

# File lib/graphql/define/instance_definable.rb, line 153
def deprecated_define(**kwargs, &block)
  instance = self.new
  instance.deprecated_define(**kwargs, &block)
  instance
end
dictionary() click to toggle source

@return [Hash] combined definitions for self and ancestors

# File lib/graphql/define/instance_definable.rb, line 214
def dictionary
  if superclass.respond_to?(:dictionary)
    own_dictionary.merge(superclass.dictionary)
  else
    own_dictionary
  end
end
ensure_defined(*method_names) click to toggle source
# File lib/graphql/define/instance_definable.rb, line 198
def ensure_defined(*method_names)
  @ensure_defined_method_names ||= []
  @ensure_defined_method_names.concat(method_names)
  nil
end
ensure_defined_method_names() click to toggle source
# File lib/graphql/define/instance_definable.rb, line 204
def ensure_defined_method_names
  own_method_names = @ensure_defined_method_names || []
  if superclass.respond_to?(:ensure_defined_method_names)
    superclass.ensure_defined_method_names + own_method_names
  else
    own_method_names
  end
end
own_dictionary() click to toggle source

@return [Hash] definitions for this class only

# File lib/graphql/define/instance_definable.rb, line 223
def own_dictionary
  @own_dictionary ||= {}
end