Module: HQ::GraphQL

Defined in:
lib/hq/graphql.rb,
lib/hq/graphql/enum.rb,
lib/hq/graphql/field.rb,
lib/hq/graphql/types.rb,
lib/hq/graphql/config.rb,
lib/hq/graphql/engine.rb,
lib/hq/graphql/inputs.rb,
lib/hq/graphql/object.rb,
lib/hq/graphql/schema.rb,
lib/hq/graphql/scalars.rb,
lib/hq/graphql/version.rb,
lib/hq/graphql/mutation.rb,
lib/hq/graphql/resource.rb,
lib/hq/graphql/comparator.rb,
lib/hq/graphql/root_query.rb,
lib/hq/graphql/types/uuid.rb,
lib/hq/graphql/input_object.rb,
lib/hq/graphql/types/object.rb,
lib/hq/graphql/root_mutation.rb,
lib/hq/graphql/association_loader.rb,
lib/hq/graphql/object_association.rb,
lib/hq/graphql/resource/auto_mutation.rb,
lib/hq/graphql/active_record_extensions.rb,
lib/hq/graphql/paginated_association_loader.rb,
lib/hq/graphql/field_extension/paginated_loader.rb,
lib/hq/graphql/field_extension/paginated_arguments.rb,
lib/hq/graphql/field_extension/association_loader_extension.rb

Defined Under Namespace

Modules: ActiveRecordExtensions, FieldExtension, Inputs, ObjectAssociation, Resource, Scalars, Types Classes: AssociationLoader, Comparator, Config, Engine, Enum, Field, InputObject, Mutation, Object, PaginatedAssociationLoader, RootMutation, RootQuery, Schema

Constant Summary collapse

VERSION =
"2.1.2"

Class Method Summary collapse

Class Method Details

.authorize_field(action, field, object, context) ⇒ Object



23
24
25
# File 'lib/hq/graphql.rb', line 23

def self.authorize_field(action, field, object, context)
  !config.authorize_field || config.authorize_field.call(action, field, object, context)
end

.authorized?(action, object, context) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/hq/graphql.rb', line 19

def self.authorized?(action, object, context)
  !config.authorize || config.authorize.call(action, object, context)
end

.configObject



11
12
13
# File 'lib/hq/graphql.rb', line 11

def self.config
  @config ||= ::HQ::GraphQL::Config.new
end

.configure(&block) ⇒ Object



15
16
17
# File 'lib/hq/graphql.rb', line 15

def self.configure(&block)
  config.instance_eval(&block)
end

.default_scope(scope, context) ⇒ Object



27
28
29
# File 'lib/hq/graphql.rb', line 27

def self.default_scope(scope, context)
  config.default_scope.call(scope, context)
end

.enumsObject



57
58
59
# File 'lib/hq/graphql.rb', line 57

def self.enums
  @enums ||= Set.new
end

.extract_class(klass) ⇒ Object



31
32
33
# File 'lib/hq/graphql.rb', line 31

def self.extract_class(klass)
  config.extract_class.call(klass)
end

.lookup_resource(klass) ⇒ Object



35
36
37
38
39
# File 'lib/hq/graphql.rb', line 35

def self.lookup_resource(klass)
  [klass, klass.base_class, klass.superclass].lazy.map do |k|
    config.resource_lookup.call(k) || resources.detect { |r| r.model_klass == k }
  end.reject(&:nil?).first
end

.reset!Object



45
46
47
48
49
50
51
# File 'lib/hq/graphql.rb', line 45

def self.reset!
  @root_queries = nil
  @enums = nil
  @resources = nil
  ::HQ::GraphQL::Inputs.reset!
  ::HQ::GraphQL::Types.reset!
end

.resourcesObject



61
62
63
# File 'lib/hq/graphql.rb', line 61

def self.resources
  @resources ||= Set.new
end

.root_queriesObject



53
54
55
# File 'lib/hq/graphql.rb', line 53

def self.root_queries
  @root_queries ||= Set.new
end

.use_experimental_associations?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/hq/graphql.rb', line 41

def self.use_experimental_associations?
  !!config.use_experimental_associations
end