Module: HQ::GraphQL

Defined in:
lib/hq/graphql.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/scalars.rb,
lib/hq/graphql/version.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/enum/sort_by.rb,
lib/hq/graphql/record_loader.rb,
lib/hq/graphql/root_mutation.rb,
lib/hq/graphql/enum/sort_order.rb,
lib/hq/graphql/association_loader.rb,
lib/hq/graphql/object_association.rb,
lib/hq/graphql/ext/enum_extensions.rb,
lib/hq/graphql/ext/object_extensions.rb,
lib/hq/graphql/ext/schema_extensions.rb,
lib/hq/graphql/resource/auto_mutation.rb,
lib/hq/graphql/ext/mutation_extensions.rb,
lib/hq/graphql/ext/input_object_extensions.rb,
lib/hq/graphql/ext/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: Enum, Ext, FieldExtension, Inputs, ObjectAssociation, Resource, Scalars, Types Classes: AssociationLoader, Comparator, Config, Engine, Field, PaginatedAssociationLoader, RecordLoader, RootMutation, RootQuery

Constant Summary collapse

VERSION =
"2.2.0"

Class Method Summary collapse

Class Method Details

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



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

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)


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

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

.configObject



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

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

.configure(&block) ⇒ Object



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

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

.default_scope(scope, context) ⇒ Object



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

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

.enumsObject



78
79
80
# File 'lib/hq/graphql.rb', line 78

def self.enums
  @enums ||= []
end

.excluded_inputsObject



39
40
41
# File 'lib/hq/graphql.rb', line 39

def self.excluded_inputs
  config.excluded_inputs || []
end

.extract_class(klass) ⇒ Object



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

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

.lazy_load(klass) ⇒ Object



66
67
68
# File 'lib/hq/graphql.rb', line 66

def self.lazy_load(klass)
  lazy_load_classes << klass unless lazy_load_classes.include?(klass)
end

.lazy_load_classesObject



70
71
72
# File 'lib/hq/graphql.rb', line 70

def self.lazy_load_classes
  @lazy_load_classes ||= []
end

.load_types!Object



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

def self.load_types!
  lazy_load_classes.pop.lazy_load! while lazy_load_classes.length > 0
end

.lookup_resource(klass) ⇒ Object



43
44
45
46
47
# File 'lib/hq/graphql.rb', line 43

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



53
54
55
56
57
58
59
60
# File 'lib/hq/graphql.rb', line 53

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

.resourcesObject



82
83
84
# File 'lib/hq/graphql.rb', line 82

def self.resources
  @resources ||= []
end

.root_queriesObject



74
75
76
# File 'lib/hq/graphql.rb', line 74

def self.root_queries
  @root_queries ||= []
end

.use_experimental_associations?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/hq/graphql.rb', line 49

def self.use_experimental_associations?
  !!config.use_experimental_associations
end