Class: QueueBus::SubscriptionList

Inherits:
Object
  • Object
show all
Defined in:
lib/queue_bus/subscription_list.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSubscriptionList

Returns a new instance of SubscriptionList.



25
26
27
# File 'lib/queue_bus/subscription_list.rb', line 25

def initialize
  @subscriptions = {}
end

Class Method Details

.from_redis(redis_hash) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/queue_bus/subscription_list.rb', line 5

def from_redis(redis_hash)
  out = SubscriptionList.new
  
  redis_hash.each do |key, value|
    sub = Subscription.from_redis(value)
    out.add(sub) if sub
  end

  out
end

Instance Method Details

#add(sub) ⇒ Object



29
30
31
32
33
# File 'lib/queue_bus/subscription_list.rb', line 29

def add(sub)
  raise "Duplicate key: #{sub.key} already exists " \
        "in the #{sub.queue_name} queue!" if @subscriptions.key?(sub.key)
  @subscriptions[sub.key] = sub
end

#allObject



43
44
45
# File 'lib/queue_bus/subscription_list.rb', line 43

def all
  @subscriptions.values
end

#key(key) ⇒ Object



39
40
41
# File 'lib/queue_bus/subscription_list.rb', line 39

def key(key)
  @subscriptions[key.to_s]
end

#matches(attributes) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/queue_bus/subscription_list.rb', line 47

def matches(attributes)
  out = []
  all.each do |sub|
    out << sub if sub.matches?(attributes)
  end
  out
end

#sizeObject



35
36
37
# File 'lib/queue_bus/subscription_list.rb', line 35

def size
  @subscriptions.size
end

#to_redisObject



17
18
19
20
21
22
23
# File 'lib/queue_bus/subscription_list.rb', line 17

def to_redis
  out = {}
  @subscriptions.values.each do |sub|
    out[sub.key] = sub.to_redis
  end
  out
end