class GraphQL::PersistedQueries::StoreAdapters::BaseStoreAdapter

Base class for all store adapters

Attributes

tracers[W]

Public Class Methods

new(**_options) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 11
def initialize(**_options)
  @name = :base
end

Public Instance Methods

fetch_query(hash, compiled_query: false) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 15
def fetch_query(hash, compiled_query: false)
  key = build_key(hash, compiled_query)

  fetch(key).tap do |result|
    event = result ? "cache_hit" : "cache_miss"
    trace("fetch_query.#{event}", adapter: @name)
  end
end
save_query(hash, query, compiled_query: false) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 24
def save_query(hash, query, compiled_query: false)
  key = build_key(hash, compiled_query)
  trace("save_query", adapter: @name) { save(key, query) }
end

Protected Instance Methods

fetch(_hash) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 31
def fetch(_hash)
  raise NotImplementedError
end
save(_hash, _query) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 35
def save(_hash, _query)
  raise NotImplementedError
end
trace(key, metadata) { || ... } click to toggle source
Calls superclass method
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 39
def trace(key, metadata)
  if @tracers
    key = "persisted_queries.#{key}"
    block_given? ? super : super {}
  elsif block_given?
    yield
  end
end

Private Instance Methods

build_key(hash, compiled_query) click to toggle source
# File lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb, line 50
def build_key(hash, compiled_query)
  key = "#{RUBY_ENGINE}-#{RUBY_VERSION}:#{GraphQL::VERSION}:#{hash}"
  compiled_query ? "compiled:#{key}" : key
end