Class: GraphQL::PersistedQueries::StoreAdapters::RedisWithLocalCacheStoreAdapter

Inherits:
BaseStoreAdapter
  • Object
show all
Defined in:
lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb

Overview

Memory adapter for storing persisted queries

Constant Summary collapse

DEFAULT_REDIS_ADAPTER_CLASS =
RedisStoreAdapter
DEFAULT_MEMORY_ADAPTER_CLASS =
MemoryStoreAdapter

Instance Attribute Summary

Attributes inherited from BaseStoreAdapter

#tracers

Instance Method Summary collapse

Methods inherited from BaseStoreAdapter

#fetch_query, #save_query

Constructor Details

#initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil, memory_adapter_class: nil) ⇒ RedisWithLocalCacheStoreAdapter

Returns a new instance of RedisWithLocalCacheStoreAdapter.



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb', line 11

def initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil,
               memory_adapter_class: nil)
  redis_adapter_class ||= DEFAULT_REDIS_ADAPTER_CLASS
  memory_adapter_class ||= DEFAULT_MEMORY_ADAPTER_CLASS

  @redis_adapter = redis_adapter_class.new(
    redis_client: redis_client,
    expiration: expiration,
    namespace: namespace
  )
  @memory_adapter = memory_adapter_class.new
  @name = :redis_with_local_cache
end

Instance Method Details

#tracers=(tracers) ⇒ Object

We don’t need to implement our own traces for this adapter since the underlying adapters will emit the proper events for us. However, since tracers can be defined at any time, we need to pass them through.



28
29
30
31
# File 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb', line 28

def tracers=(tracers)
  @memory_adapter.tracers = tracers
  @redis_adapter.tracers = tracers
end