Class: Graphiti::ActiveGraph::Scope

Inherits:
Scope
  • Object
show all
Defined in:
lib/graphiti/active_graph/scope.rb

Instance Method Summary collapse

Instance Method Details

#add_scoping(key, scoping_class, opts, _ = {}) ⇒ Object



21
22
23
24
25
# File 'lib/graphiti/active_graph/scope.rb', line 21

def add_scoping(key, scoping_class, opts, _ = {})
  @object = scoping_class.new(@resource, @query.hash, @object, opts).apply
  return if non_applicable_for_unpaginated.include?(key)
  @unpaginated_object = scoping_class.new(@resource, @query.hash, @unpaginated_object, opts.merge(unpaginated_query: true)).apply
end

#append_scopings(opts) ⇒ Object



16
17
18
19
# File 'lib/graphiti/active_graph/scope.rb', line 16

def append_scopings(opts)
  add_scoping(:include, Scoping::Include, opts)
  add_scoping(:association_eagerload, Scoping::AssociationEagerLoad, opts)
end

#apply_scoping(scope, opts) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/graphiti/active_graph/scope.rb', line 8

def apply_scoping(scope, opts)
  opts[:query_obj] = @query
  super

  append_scopings(opts) unless @resource.remote?
  @object
end

#non_applicable_for_unpaginatedObject



4
5
6
# File 'lib/graphiti/active_graph/scope.rb', line 4

def non_applicable_for_unpaginated
  i[association_eagerload]
end