module Redcord::RedisConnection::ClassMethods

Public Instance Methods

connection_config() click to toggle source
# File lib/redcord/redis_connection.rb, line 30
def connection_config
  env_config = Redcord::Base.configurations[Rails.env]
  (env_config[name.underscore] || env_config['default']).symbolize_keys
end
establish_connection() click to toggle source
# File lib/redcord/redis_connection.rb, line 41
def establish_connection
  Redcord::RedisConnection.connections[name.underscore] = prepare_redis!
end
prepare_redis!(client = nil) click to toggle source
# File lib/redcord/redis_connection.rb, line 57
def prepare_redis!(client = nil)
  return client if client.is_a?(Redcord::Redis) || client.is_a?(Redcord::ConnectionPool)

  options = client.nil? ? connection_config : client.instance_variable_get(:@options)
  client =
    if options[:pool]
      Redcord::ConnectionPool.new(
        pool_size: options[:pool],
        timeout: options[:connection_timeout] || 1.0,
        **options
      )
    else
      Redcord::Redis.new(**options, logger: Redcord::Logger.proxy)
    end

  client.ping
  client
end
redis() click to toggle source
# File lib/redcord/redis_connection.rb, line 36
def redis
  Redcord::RedisConnection.connections[name.underscore] ||= prepare_redis!
end
redis=(redis) click to toggle source
# File lib/redcord/redis_connection.rb, line 46
def redis=(redis)
  Redcord::RedisConnection.connections[name.underscore] =
    prepare_redis!(redis)
end