Class: TFSGraph::ServerRegistry

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/tfs_graph/server_registry.rb

Constant Summary collapse

DEFAULT_REDIS =
{url: "redis://localhost:6379", namespace: "tfs_graph" }

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeServerRegistry

Returns a new instance of ServerRegistry.



20
21
22
# File 'lib/tfs_graph/server_registry.rb', line 20

def initialize
  reset!
end

Class Method Details

.register {|instance| ... } ⇒ Object

Yields:

  • (instance)


13
14
15
16
17
18
# File 'lib/tfs_graph/server_registry.rb', line 13

def self.register
  instance.reset!

  yield instance if block_given?
  instance
end

Instance Method Details

#redis(url: DEFAULT_REDIS[:url], namespace: DEFAULT_REDIS[:namespace]) ⇒ Object



31
32
33
34
35
# File 'lib/tfs_graph/server_registry.rb', line 31

def redis(url: DEFAULT_REDIS[:url], namespace: DEFAULT_REDIS[:namespace])
  return @redis unless @redis.nil?

  @redis = Redis::Namespace.new(namespace, redis: Redis.connect(url: url))
end

#reset!Object



9
10
11
# File 'lib/tfs_graph/server_registry.rb', line 9

def reset!
  @redis = nil
end

#server(server_obj = nil) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
29
# File 'lib/tfs_graph/server_registry.rb', line 24

def server(server_obj=nil)
  return @server if @server && server_obj.nil?
  raise ArgumentError, "Need to register a server first" unless server_obj

  @server = server_obj
end