Class: GraphQL::PersistedQueries::StoreAdapters::MemcachedClientBuilder

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

Overview

Builds Redis object instance based on passed hash

Instance Method Summary collapse

Constructor Details

#initialize(memcached_url: nil, memcached_host: nil, memcached_port: nil, **dalli_args) ⇒ MemcachedClientBuilder

Returns a new instance of MemcachedClientBuilder.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/graphql/persisted_queries/store_adapters/memcached_client_builder.rb', line 8

def initialize(memcached_url: nil, memcached_host: nil, memcached_port: nil, **dalli_args)
  require "dalli"

  @memcached_url = memcached_url
  @memcached_host = memcached_host
  @memcached_port = memcached_port
  @dalli_args = dalli_args
rescue LoadError => e
  msg = "Could not load the 'dalli' gem, please add it to your gemfile or " \
        "configure a different adapter, e.g. use GraphQL::PersistedQueries, store: :memory"
  raise e.class, msg, e.backtrace
end

Instance Method Details

#buildObject



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

def build
  if @memcached_url && (@memcached_host || @memcached_port)
    raise ArgumentError, "memcached_url cannot be passed along with memcached_host or " \
                         "memcached_port options"
  end

  ::Dalli::Client.new(@memcached_url || build_memcached_url, **@dalli_args)
end