class Loco::WsConnectionFinder

Public Class Methods

call(resources, &block) click to toggle source
# File lib/loco/ws_connection_finder.rb, line 6
def call(resources, &block)
  storage = WsConnectionStorage.current
  resources = [resources] unless resources.is_a?(Array)
  resources.each do |resource|
    case resource
    when :all then storage.scan(all: true, &block)
    when Hub then search_the_hub(resource, &block)
    when Class
      storage.scan(match: "#{WsConnectionIdentifier.(resource)}:*", &block)
    else
      storage.members(WsConnectionIdentifier.(resource)).each(&block)
    end
  end
end

Private Class Methods

search_the_hub(resource, &block) click to toggle source
# File lib/loco/ws_connection_finder.rb, line 23
def search_the_hub(resource, &block)
  WsConnectionStorage.current.members(resource.full_name).map do |serialized|
    WsConnectionStorage.current.members(serialized).each(&block)
  end
end