Class: QueueBus::SubscriptionList
- Inherits:
-
Object
- Object
- QueueBus::SubscriptionList
- Defined in:
- lib/queue_bus/subscription_list.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(sub) ⇒ Object
- #all ⇒ Object
-
#initialize ⇒ SubscriptionList
constructor
A new instance of SubscriptionList.
- #key(key) ⇒ Object
- #matches(attributes) ⇒ Object
- #size ⇒ Object
- #to_redis ⇒ Object
Constructor Details
#initialize ⇒ SubscriptionList
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 |
#all ⇒ Object
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 |
#size ⇒ Object
35 36 37 |
# File 'lib/queue_bus/subscription_list.rb', line 35 def size @subscriptions.size end |
#to_redis ⇒ Object
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 |