module OpticsAgent::GraphQLSchemaExtensions

Public Class Methods

_attach_optics_agent(agent) click to toggle source
# File lib/optics-agent/instrumenters/patch-graphql-schema.rb, line 15
def _attach_optics_agent(agent)
  agent.debug "Attaching agent to instrumenters"
  @field_instrumenter.agent = @query_instrumenter.agent = agent
end

Public Instance Methods

define(**kwargs, &block) click to toggle source
Calls superclass method
# 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