class GraphQL::PersistedQueries::StoreAdapters::RedisClientBuilder
Builds Redis object instance based on passed hash
Constants
- DEFAULT_REDIS_DB
Public Class Methods
new(redis_url: nil, redis_host: nil, redis_port: nil, redis_db_name: nil)
click to toggle source
# File lib/graphql/persisted_queries/store_adapters/redis_client_builder.rb, line 8 def initialize(redis_url: nil, redis_host: nil, redis_port: nil, redis_db_name: nil) require "redis" @redis_url = redis_url @redis_host = redis_host @redis_port = redis_port @redis_db_name = redis_db_name rescue LoadError => e msg = "Could not load the 'redis' 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
Public Instance Methods
build()
click to toggle source
# File lib/graphql/persisted_queries/store_adapters/redis_client_builder.rb, line 21 def build if @redis_url && (@redis_host || @redis_port || @redis_db_name) raise ArgumentError, "redis_url cannot be passed along with redis_host, redis_port " \ "or redis_db_name options" end ::Redis.new(url: @redis_url || build_redis_url) end
Private Instance Methods
build_redis_url()
click to toggle source
# File lib/graphql/persisted_queries/store_adapters/redis_client_builder.rb, line 34 def build_redis_url db_name = @redis_db_name || DEFAULT_REDIS_DB base_url = ENV["REDIS_URL"] || "redis://#{@redis_host}:#{@redis_port}" URI.join(base_url, db_name).to_s end