Class: GraphQL::PersistedQueries::StoreAdapters::MemoryStoreAdapter

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

Overview

Memory adapter for storing persisted queries

Instance Attribute Summary

Attributes inherited from BaseStoreAdapter

#tracers

Instance Method Summary collapse

Methods inherited from BaseStoreAdapter

#fetch_query, #save_query, #trace

Constructor Details

#initialize(**options) ⇒ MemoryStoreAdapter

Returns a new instance of MemoryStoreAdapter.



8
9
10
11
12
# File 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb', line 8

def initialize(**options)
  @storage = {}
  @name = :memory
  @marshal_inmemory_queries = options.fetch(:marshal_inmemory_queries, true)
end

Instance Method Details

#deserialize(serialized_query) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb', line 30

def deserialize(serialized_query)
  return unless serialized_query

  if @marshal_inmemory_queries
    super(serialized_query)
  else
    serialized_query
  end
end

#fetch(hash) ⇒ Object



14
15
16
# File 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb', line 14

def fetch(hash)
  deserialize(@storage[hash])
end

#save(hash, query) ⇒ Object



18
19
20
# File 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb', line 18

def save(hash, query)
  @storage[hash] = serialize(query)
end

#serialize(query) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb', line 22

def serialize(query)
  if @marshal_inmemory_queries
    super(query)
  else
    query
  end
end