Class: GraphQL::Analyzer
- Inherits:
-
Object
show all
- Defined in:
- lib/graphql/analyzer.rb,
lib/graphql/analyzer/result.rb,
lib/graphql/analyzer/version.rb,
lib/graphql/analyzer/parser/base.rb,
lib/graphql/analyzer/parser/mysql.rb,
lib/graphql/analyzer/parser/sqlite3.rb,
lib/graphql/analyzer/parser/postgresql.rb,
lib/graphql/analyzer/instrumentation/base.rb,
lib/graphql/analyzer/instrumentation/mysql.rb,
lib/graphql/analyzer/instrumentation/sqlite3.rb,
lib/graphql/analyzer/instrumentation/postgresql.rb,
lib/graphql/analyzer/instrumentation/active_record.rb,
lib/graphql/analyzer/instrumentation/elastic_search.rb
Defined Under Namespace
Modules: Instrumentation, Parser
Classes: Result
Constant Summary
collapse
- VERSION =
"0.1.4"
Instance Method Summary
collapse
Constructor Details
#initialize(instruments) ⇒ Analyzer
Returns a new instance of Analyzer.
20
21
22
|
# File 'lib/graphql/analyzer.rb', line 20
def initialize(instruments)
@instruments = instruments
end
|
Instance Method Details
#after_query(query) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/graphql/analyzer.rb', line 33
def after_query(query)
result = query.result
result["extensions"] ||= {}
result["extensions"]["analyzer"] = {
"version" => 1,
"execution" => {
"resolvers" => query.context['graphql-analyzer']['resolvers']
}
}
end
|
#before_query(query) ⇒ Object
29
30
31
|
# File 'lib/graphql/analyzer.rb', line 29
def before_query(query)
query.context['graphql-analyzer'] = { 'resolvers' => [] }
end
|
#instrument(type, field) ⇒ Object
45
46
47
48
49
50
51
52
|
# File 'lib/graphql/analyzer.rb', line 45
def instrument(type, field)
instruments.reduce(field) do |field, instrumentation|
field.redefine do
resolve(instrumentation.instrument(type, field))
lazy_resolve(instrumentation.instrument_lazy(type, field))
end
end
end
|
#use(schema_definition) ⇒ Object
24
25
26
27
|
# File 'lib/graphql/analyzer.rb', line 24
def use(schema_definition)
schema_definition.instrument(:query, self)
schema_definition.instrument(:field, self)
end
|