Class: SolidQueue::QueueSelector

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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