Module: GraphQL::PersistedQueries::StoreAdapters

Defined in:
lib/graphql/persisted_queries/store_adapters.rb,
lib/graphql/persisted_queries/store_adapters/base_store_adapter.rb,
lib/graphql/persisted_queries/store_adapters/redis_store_adapter.rb,
lib/graphql/persisted_queries/store_adapters/memory_store_adapter.rb

Overview

Contains factory methods for store adapters

Defined Under Namespace

Classes: BaseStoreAdapter, MemoryStoreAdapter, RedisStoreAdapter

Class Method Summary collapse

Class Method Details

.build(adapter, options = nil) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/graphql/persisted_queries/store_adapters.rb', line 11

def self.build(adapter, options = nil)
  if adapter.is_a?(StoreAdapters::BaseStoreAdapter)
    adapter
  else
    build_by_name(adapter, options)
  end
end

.build_by_name(name, options) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/graphql/persisted_queries/store_adapters.rb', line 19

def self.build_by_name(name, options)
  camelized_adapter = name.to_s.split("_").map(&:capitalize).join
  adapter_class_name = "#{camelized_adapter}StoreAdapter"
  StoreAdapters.const_get(adapter_class_name).new(options || {})
rescue NameError => e
  raise e.class, "Persisted query store adapter for :#{name} haven't been found", e.backtrace
end