Module: OpticsAgent::GraphQLSchemaExtensions

Included in:
GraphQL::Schema
Defined in:
lib/optics-agent/instrumenters/patch-graphql-schema.rb

Instance Method Summary collapse

Instance Method Details

#define(**kwargs, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/optics-agent/instrumenters/patch-graphql-schema.rb', line 10

def define(**kwargs, &block)
  @field_instrumenter = OpticsAgent::Instrumenters::Field.new
  @query_instrumenter = OpticsAgent::Instrumenters::Query.new

  class << self
    def _attach_optics_agent(agent)
      agent.debug "Attaching agent to instrumenters"
      @field_instrumenter.agent = @query_instrumenter.agent = agent
    end
  end

  field_instrumenter = @field_instrumenter
  query_instrumenter = @query_instrumenter
  super **kwargs do
    instance_eval(&block) if block
    instrument :field, field_instrumenter
    instrument :query, query_instrumenter
  end
end