otwarchive-symphonyarchive/config/initializers/gem-plugin_config/redis.rb
2026-03-11 22:22:11 +00:00

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