Class: SolidQueue::QueueSelector
- Inherits:
-
Object
- Object
- SolidQueue::QueueSelector
- Defined in:
- lib/solid_queue_mongoid/models/queue_selector.rb
Overview
Mirrors SolidQueue::QueueSelector but uses Mongo queries for wildcard resolution.
Instance Attribute Summary collapse
-
#raw_queues ⇒ Object
readonly
Returns the value of attribute raw_queues.
-
#relation ⇒ Object
readonly
Returns the value of attribute relation.
Instance Method Summary collapse
-
#initialize(queue_list, relation) ⇒ QueueSelector
constructor
A new instance of QueueSelector.
-
#scoped_relations ⇒ Object
Returns an array of Mongoid criteria scoped to individual queue names, or a single all/none criteria when appropriate.
Constructor Details
#initialize(queue_list, relation) ⇒ QueueSelector
Returns a new instance of QueueSelector.
8 9 10 11 |
# File 'lib/solid_queue_mongoid/models/queue_selector.rb', line 8 def initialize(queue_list, relation) @raw_queues = Array(queue_list).map { |q| q.to_s.strip }.presence || ["*"] @relation = relation end |
Instance Attribute Details
#raw_queues ⇒ Object (readonly)
Returns the value of attribute raw_queues.
6 7 8 |
# File 'lib/solid_queue_mongoid/models/queue_selector.rb', line 6 def raw_queues @raw_queues end |
#relation ⇒ Object (readonly)
Returns the value of attribute relation.
6 7 8 |
# File 'lib/solid_queue_mongoid/models/queue_selector.rb', line 6 def relation @relation end |
Instance Method Details
#scoped_relations ⇒ Object
Returns an array of Mongoid criteria scoped to individual queue names, or a single all/none criteria when appropriate.
15 16 17 18 19 20 21 22 23 |
# File 'lib/solid_queue_mongoid/models/queue_selector.rb', line 15 def scoped_relations if all? [relation.all] elsif none? [] else queue_names.map { |queue_name| relation.queued_as(queue_name) } end end |