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
52 53 54 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 52 def persisted_queries_tracing_enabled=(value) @persisted_queries_tracing_enabled = value end |
Class Method Details
.patch(schema, compiled_queries) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 14 def patch(schema, compiled_queries) schema.singleton_class.prepend(SchemaPatch) if compiled_queries configure_compiled_queries(schema) else schema.singleton_class.class_eval { alias_method :multiplex_original, :multiplex } schema.singleton_class.prepend(MultiplexPatch) end end |
Instance Method Details
#configure_persisted_query_error_handler(handler) ⇒ Object
68 69 70 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 68 def configure_persisted_query_error_handler(handler) @persisted_query_error_handler = ErrorHandlers.build(handler) end |
#configure_persisted_query_store(store, **options) ⇒ Object
54 55 56 57 58 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 54 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
72 73 74 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 72 def hash_generator=(hash_generator) @hash_generator_proc = HashGeneratorBuilder.new(hash_generator).build end |
#hash_generator_proc ⇒ Object
76 77 78 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 76 def hash_generator_proc @hash_generator_proc ||= find_inherited_value(:hash_generator_proc) end |
#persisted_queries_tracing_enabled? ⇒ Boolean
84 85 86 87 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 84 def persisted_queries_tracing_enabled? @persisted_queries_tracing_enabled ||= find_inherited_value(:persisted_queries_tracing_enabled?) end |
#persisted_query_error_handler ⇒ Object
64 65 66 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 64 def persisted_query_error_handler @persisted_query_error_handler ||= find_inherited_value(:persisted_query_error_handler) end |
#persisted_query_store ⇒ Object
60 61 62 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 60 def persisted_query_store @persisted_query_store ||= find_inherited_value(:persisted_query_store) end |
#tracer(name) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 89 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
80 81 82 |
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 80 def verify_http_method=(verify) query_analyzer(prepare_analyzer) if verify end |