Module: GraphQL::PersistedQueries::SchemaPatch
- Defined in:
- lib/graphql/persisted_queries/schema_patch.rb
Overview
Patches GraphQL::Schema to support persisted queries
Defined Under Namespace
Modules: MultiplexPatch
Instance Attribute Summary collapse
-
#persisted_queries_tracing_enabled ⇒ Object
writeonly
Sets the attribute persisted_queries_tracing_enabled.
Class Method Summary collapse
Instance Method Summary collapse
- #configure_persisted_query_error_handler(handler) ⇒ Object
- #configure_persisted_query_store(store, **options) ⇒ Object
- #hash_generator=(hash_generator) ⇒ Object
- #hash_generator_proc ⇒ Object
- #persisted_queries_tracing_enabled? ⇒ Boolean
- #persisted_query_error_handler ⇒ Object
- #persisted_query_store ⇒ Object
- #tracer(name) ⇒ Object
- #verify_http_method=(verify) ⇒ Object
Instance Attribute Details
#persisted_queries_tracing_enabled=(value) ⇒ Object (writeonly)
Sets the attribute persisted_queries_tracing_enabled
30 31 32 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 30 def persisted_queries_tracing_enabled=(value) @persisted_queries_tracing_enabled = value end |
Class Method Details
.patch(schema, compiled_queries) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 13 def patch(schema, compiled_queries) schema.singleton_class.prepend(SchemaPatch) return if compiled_queries schema.singleton_class.class_eval { alias_method :multiplex_original, :multiplex } schema.singleton_class.prepend(MultiplexPatch) end |
Instance Method Details
#configure_persisted_query_error_handler(handler) ⇒ Object
46 47 48 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 46 def configure_persisted_query_error_handler(handler) @persisted_query_error_handler = ErrorHandlers.build(handler) end |
#configure_persisted_query_store(store, **options) ⇒ Object
32 33 34 35 36 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 32 def configure_persisted_query_store(store, **) @persisted_query_store = StoreAdapters.build(store, **).tap do |adapter| adapter.tracers = tracers if persisted_queries_tracing_enabled? end end |
#hash_generator=(hash_generator) ⇒ Object
50 51 52 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 50 def hash_generator=(hash_generator) @hash_generator_proc = HashGeneratorBuilder.new(hash_generator).build end |
#hash_generator_proc ⇒ Object
54 55 56 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 54 def hash_generator_proc @hash_generator_proc ||= find_inherited_value(:hash_generator_proc) end |
#persisted_queries_tracing_enabled? ⇒ Boolean
62 63 64 65 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 62 def persisted_queries_tracing_enabled? @persisted_queries_tracing_enabled ||= find_inherited_value(:persisted_queries_tracing_enabled?) end |
#persisted_query_error_handler ⇒ Object
42 43 44 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 42 def persisted_query_error_handler @persisted_query_error_handler ||= find_inherited_value(:persisted_query_error_handler) end |
#persisted_query_store ⇒ Object
38 39 40 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 38 def persisted_query_store @persisted_query_store ||= find_inherited_value(:persisted_query_store) end |
#tracer(name) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 67 def tracer(name) super.tap do # Since tracers can be set before *and* after our plugin hooks in, # we need to set tracers both when this plugin gets initialized # and any time a tracer is added after initialization persisted_query_store.tracers = tracers if persisted_queries_tracing_enabled? end end |
#verify_http_method=(verify) ⇒ Object
58 59 60 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 58 def verify_http_method=(verify) query_analyzer(prepare_analyzer) if verify end |