class RedisEnvConfig
Constants
- CA_FILE_LOCK
- VERSION
Public Class Methods
new(env: ENV)
click to toggle source
# File lib/redis_env_config.rb, line 8 def initialize(env: ENV) @config = {} @config[:url] = env["REDIS_URL"] if env["REDIS_URL"] @config[:password] = env["REDIS_PASSWORD"] if env["REDIS_PASSWORD"] if !@config[:url].nil? and @config[:url].start_with?("rediss:") @config[:ssl_params] = Hash.new.tap do |x| cert = env["REDIS_CERT"] or raise Error, "missing environment variable REDIS_CERT" x[:cert] = OpenSSL::X509::Certificate.new(cert) key = env["REDIS_KEY"] or raise Error, "missing environment variable REDIS_KEY" x[:key] = OpenSSL::PKey::RSA.new(key) x[:ca_file] = env["REDIS_CA_FILE"] or raise Error, "missing environment variable REDIS_CA_FILE" @ca = env["REDIS_CA"] if env["REDIS_CA"] end assure_redis_ca_file end end
Public Instance Methods
to_h()
click to toggle source
# File lib/redis_env_config.rb, line 25 def to_h @config.dup end
Private Instance Methods
assure_redis_ca_file()
click to toggle source
# File lib/redis_env_config.rb, line 31 def assure_redis_ca_file CA_FILE_LOCK.synchronize do if @ca and !File.exist?(@config[:ssl_params][:ca_file]) File.open(@config[:ssl_params][:ca_file], "w") { |io| io.write(@ca) } end end end