35 lines
1.2 KiB
Ruby
35 lines
1.2 KiB
Ruby
require "redis_test_setup"
|
|
include RedisTestSetup # rubocop:disable Style/MixinUsage
|
|
|
|
rails_root = ENV["RAILS_ROOT"] || "#{File.dirname(__FILE__)}/../../.."
|
|
rails_env = (ENV["RAILS_ENV"] || "development").to_sym
|
|
|
|
# https://gist.github.com/441072
|
|
start_redis!(rails_root, :cucumber) if rails_env == :test && !(ENV["CI"] || ENV["DOCKER"])
|
|
|
|
redis_configs = YAML.load_file("#{rails_root}/config/redis.yml", symbolize_names: true)
|
|
redis_configs.each_pair do |name, redis_config|
|
|
redis_options = {}
|
|
if redis_config[rails_env].is_a?(Hash)
|
|
# example:
|
|
# redis_kudos:
|
|
# development
|
|
# name: redis_kudos
|
|
# sentinels:
|
|
# - host: 127.0.0.1
|
|
# port: 26379
|
|
# - host: 127.0.0.1
|
|
# port: 26380
|
|
redis_options = redis_config[rails_env]
|
|
else
|
|
redis_host, redis_port = redis_config[rails_env].split(":")
|
|
redis_options[:host] = redis_host
|
|
redis_options[:port] = redis_port
|
|
end
|
|
redis_connection = Redis.new(redis_options)
|
|
if ENV["DEV_USER"]
|
|
namespaced_redis = Redis::Namespace.new(ENV["DEV_USER"], redis: redis_connection)
|
|
redis_connection = namespaced_redis
|
|
end
|
|
Object.const_set(name.upcase, redis_connection)
|
|
end
|