Class: Readiness::Redis

Inherits:
Object
  • Object
show all
Defined in:
lib/support_readiness/redis.rb

Overview

Defines the class Redis within the module Readiness.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host, port, password, username = nil, ssl = true) ⇒ Redis

Creates a new Readiness::Redis instance

Examples:

require 'support_readiness'
redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')

Parameters:

  • host (String)

    The hostname to use in Redis connections

  • port (Integer)

    The port number to use in Redis connections

  • password (String)

    The password to use in Redis connections

  • username (String) (defaults to: nil)

    The username to use in Redis connections

  • ssl (Boolean) (defaults to: true)

    The SSL setting to use in Redis connections

Author:

  • Jason Colyer

Since:

  • 1.0.0



26
27
28
# File 'lib/support_readiness/redis.rb', line 26

def initialize(host, port, password, username = nil, ssl = true)
  @connection = generate_client(host, port, password, username, ssl)
end

Instance Attribute Details

#connectionObject

Since:

  • 1.0.0



11
12
13
# File 'lib/support_readiness/redis.rb', line 11

def connection
  @connection
end

Class Method Details

.del(client, key) ⇒ Boolean

Deletes the key and value stored in a Redis

Examples:

require 'support_readiness'
redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')
Readiness::Redis.del(redis, 'foo')

Parameters:

  • client (Object)

    A Readiness::Redis instance

  • key (String)

    The Redis key to delete

Returns:

  • (Boolean)

Author:

  • Jason Colyer

Since:

  • 1.0.0



94
95
96
97
98
99
# File 'lib/support_readiness/redis.rb', line 94

def self.del(client, key)
  response = client.connection.del(key)
  return true if response == 1

  false
end

.get(client, key) ⇒ Object

Returns the value stored in a Redis key

Examples:

require 'support_readiness'
redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')
puts Readiness::Redis.get(redis, 'foo')
# => bar

Parameters:

  • client (Object)

    A Readiness::Redis instance

  • key (String)

    The Redis key to get the value of

Author:

  • Jason Colyer

Since:

  • 1.0.0



60
61
62
63
64
# File 'lib/support_readiness/redis.rb', line 60

def self.get(client, key)
  Marshal.load client.connection.get(key)
rescue TypeError
  nil
end

.set(client, key, value) ⇒ Object

Sets the value stored in a Redis key

Examples:

require 'support_readiness'
redis = Readiness::Redis.new('domain.com', 6379, 'p@assw0rd!')
Readiness::Redis.set(redis, 'foo', 'bar2')

Parameters:

  • client (Object)

    A Readiness::Redis instance

  • key (String)

    The Redis key to set the value of

  • value

    The value to set within the key

Author:

  • Jason Colyer

Since:

  • 1.0.0



78
79
80
# File 'lib/support_readiness/redis.rb', line 78

def self.set(client, key, value)
  client.connection.set(key, Marshal.dump(value))
end

Instance Method Details

#generate_client(host, port, password, username, ssl) ⇒ Object

Returns a Redis connection

Parameters:

  • host (String)

    The hostname to use in Redis connections

  • port (Integer)

    The port number to use in Redis connections

  • password (String)

    The password to use in Redis connections

  • username (String)

    The username to use in Redis connections

  • ssl (Boolean)

    The SSL setting to use in Redis connections

Author:

  • Jason Colyer

Since:

  • 1.0.0



40
41
42
43
44
45
46
# File 'lib/support_readiness/redis.rb', line 40

def generate_client(host, port, password, username, ssl)
  ::Redis.new(host: host,
              username: username,
              port: port,
              password: password,
              ssl: ssl)
end