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
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
|
.config ⇒ Object
15
16
17
|
# File 'lib/hq/graphql.rb', line 15
def self.config
@config ||= ::HQ::GraphQL::Config.new
end
|
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
|
.enums ⇒ Object
78
79
80
|
# File 'lib/hq/graphql.rb', line 78
def self.enums
@enums ||= []
end
|
39
40
41
|
# File 'lib/hq/graphql.rb', line 39
def self.excluded_inputs
config.excluded_inputs || []
end
|
35
36
37
|
# File 'lib/hq/graphql.rb', line 35
def self.(klass)
config..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_classes ⇒ Object
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
|
.resources ⇒ Object
82
83
84
|
# File 'lib/hq/graphql.rb', line 82
def self.resources
@resources ||= []
end
|
.root_queries ⇒ Object
74
75
76
|
# File 'lib/hq/graphql.rb', line 74
def self.root_queries
@root_queries ||= []
end
|
.use_experimental_associations? ⇒ Boolean
49
50
51
|
# File 'lib/hq/graphql.rb', line 49
def self.use_experimental_associations?
!!config.use_experimental_associations
end
|