Class: Firehose::Server::Redis

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

Overview

Manages redis configuration and connections.

Constant Summary collapse

DEFAULT_URL =
"redis://127.0.0.1:6379/0".freeze
KEY_DELIMITER =
":".freeze
ROOT_KEY =
"firehose".freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url = self.class.url) ⇒ Redis

Returns a new instance of Redis.



13
14
15
# File 'lib/firehose/server/redis.rb', line 13

def initialize(url = self.class.url)
  @url = URI(url)
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



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

def url
  @url
end

Class Method Details

.key(*segments) ⇒ Object

Generates keys for all firehose interactions with Redis. Ensures a root key of ‘firehose`



23
24
25
# File 'lib/firehose/server/redis.rb', line 23

def self.key(*segments)
  segments.flatten.unshift(ROOT_KEY).join(KEY_DELIMITER)
end

.urlObject



27
28
29
# File 'lib/firehose/server/redis.rb', line 27

def self.url
  ENV.fetch("REDIS_URL", DEFAULT_URL)
end

Instance Method Details

#connectionObject



17
18
19
# File 'lib/firehose/server/redis.rb', line 17

def connection
  EM::Hiredis.connect(@url)
end