Sha256: b800cb11312b49f695a3a119a78aaa472cb79261ac1db76af818ed0b5caa68d7
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true module GraphQL module Tracing # This implementation forwards events to a notification handler (i.e. # ActiveSupport::Notifications or Dry::Monitor::Notifications) # with a `graphql` suffix. module NotificationsTrace include PlatformTrace # Initialize a new NotificationsTracing instance # # @param engine [#instrument(key, metadata, block)] The notifications engine to use def initialize(engine:, **rest) @notifications_engine = engine super end { "lex" => "lex.graphql", "parse" => "parse.graphql", "validate" => "validate.graphql", "analyze_multiplex" => "analyze_multiplex.graphql", "analyze_query" => "analyze_query.graphql", "execute_query" => "execute_query.graphql", "execute_query_lazy" => "execute_query_lazy.graphql", "execute_field" => "execute_field.graphql", "execute_field_lazy" => "execute_field_lazy.graphql", "authorized" => "authorized.graphql", "authorized_lazy" => "authorized_lazy.graphql", "resolve_type" => "resolve_type.graphql", "resolve_type_lazy" => "resolve_type.graphql", }.each do |trace_method, platform_key| module_eval <<-RUBY, __FILE__, __LINE__ def #{trace_method}(**metadata, &blk) @notifications_engine.instrument("#{platform_key}", metadata, &blk) end RUBY end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
graphql-2.0.20 | lib/graphql/tracing/notifications_trace.rb |
graphql-2.0.19 | lib/graphql/tracing/notifications_trace.rb |
graphql-2.0.18 | lib/graphql/tracing/notifications_trace.rb |