Class: RedisEnvConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/redis_env_config.rb,
lib/redis_env_config/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

CA_FILE_LOCK =
Mutex.new
VERSION =
"0.2.1"

Instance Method Summary collapse

Constructor Details

#initialize(env: ENV) ⇒ RedisEnvConfig

Returns a new instance of RedisEnvConfig.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

Instance Method Details

#to_hObject



25
26
27
# File 'lib/redis_env_config.rb', line 25

def to_h
  @config.dup
end