Class: Loco::WsConnectedResourcesManager

Inherits:
Object
  • Object
show all
Defined in:
lib/loco/ws_connected_resources_manager.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resources) ⇒ WsConnectedResourcesManager

Returns a new instance of WsConnectedResourcesManager.



5
6
7
8
# File 'lib/loco/ws_connected_resources_manager.rb', line 5

def initialize(resources)
  @resources = resources
  @connected_resources = nil
end

Class Method Details

.add(identifier) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/loco/ws_connected_resources_manager.rb', line 18

def add(identifier)
  ids = identifiers
  return if ids.include? identifier

  ids << identifier
  WsConnectionStorage.current.set key, ids.to_json
end

.del(identifier) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/loco/ws_connected_resources_manager.rb', line 26

def del(identifier)
  ids = identifiers
  return unless ids.include? identifier

  ids.delete identifier
  WsConnectionStorage.current.set key, ids.to_json
end

.identifiersObject



11
12
13
14
15
16
# File 'lib/loco/ws_connected_resources_manager.rb', line 11

def identifiers
  val = WsConnectionStorage.current.get key
  return [] if val.blank?

  JSON.parse val
end

.keyObject



34
35
36
# File 'lib/loco/ws_connected_resources_manager.rb', line 34

def key
  'loco:conn_ids'
end

Instance Method Details

#connected?(resource) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
# File 'lib/loco/ws_connected_resources_manager.rb', line 50

def connected?(resource)
  connected_resources.map do |res|
    WsConnectionManager.new(res).identifier
  end.include? WsConnectionManager.new(resource).identifier
end

#connected_resourcesObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/loco/ws_connected_resources_manager.rb', line 39

def connected_resources
  return @connected_resources if @connected_resources

  @resources.each do |resource|
    next if WsConnectionManager.new(resource).connected_uuids.empty?

    add resource
  end
  @connected_resources || []
end