Module: GraphQLIncludable::Concern::ClassMethods

Defined in:
lib/graphql_includable/concern.rb

Instance Method Summary collapse

Instance Method Details

#delegate(*methods, args) ⇒ Object



29
30
31
32
33
34
# File 'lib/graphql_includable/concern.rb', line 29

def delegate(*methods, args)
  methods.each do |method|
    delegate_cache[method] = args[:to]
  end
  super(*methods, args) if defined?(super)
end

#delegate_cacheObject



25
26
27
# File 'lib/graphql_includable/concern.rb', line 25

def delegate_cache
  @delegate_cache ||= {}
end

#includes_from_graphql(ctx) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/graphql_includable/concern.rb', line 8

def includes_from_graphql(ctx)
  ActiveSupport::Notifications.instrument('graphql_includable.includes_from_graphql') do |instrument|
    instrument[:operation_name] = ctx.query&.operation_name

    node = Resolver.find_node_by_return_type(ctx.irep_node, name)
    manager = IncludesManager.new(nil)
    Resolver.includes_for_node(node, manager)

    generated_includes = manager.includes
    instrument[:includes] = generated_includes
    includes(generated_includes)
  end
rescue => e
  Rails.logger.error(e)
  self
end