Method: ActiveSupport::Cache::RedisCacheStore.build_redis

Defined in:
activesupport/lib/active_support/cache/redis_cache_store.rb

.build_redis(redis: nil, url: nil, **redis_options) ⇒ Object

Factory method to create a new Redis instance.

Handles four options: :redis block, :redis instance, single :url string, and multiple :url strings.

Option  Class       Result
:redis  Proc    ->  options[:redis].call
:redis  Object  ->  options[:redis]
:url    String  ->  Redis.new(url: 


81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'activesupport/lib/active_support/cache/redis_cache_store.rb', line 81

def build_redis(redis: nil, url: nil, **redis_options) # :nodoc:
  urls = Array(url)

  if redis.is_a?(Proc)
    redis.call
  elsif redis
    redis
  elsif urls.size > 1
    build_redis_distributed_client(urls: urls, **redis_options)
  elsif urls.empty?
    build_redis_client(**redis_options)
  else
    build_redis_client(url: urls.first, **redis_options)
  end
end