Module: SolidQueueGuard::QueueCoverage
- Defined in:
- lib/solid_queue_guard/queue_coverage.rb
Class Method Summary collapse
- .covers_all?(worker_queues, required_queue) ⇒ Boolean
- .parse_queues_option(value) ⇒ Object
- .uncovered_queues(required_queues, worker_queues) ⇒ Object
- .worker_queues_from_configuration(configuration = SolidQueue::Configuration.new) ⇒ Object
Class Method Details
.covers_all?(worker_queues, required_queue) ⇒ Boolean
14 15 16 17 18 |
# File 'lib/solid_queue_guard/queue_coverage.rb', line 14 def covers_all?(worker_queues, required_queue) return true if worker_queues.include?('*') worker_queues.include?(required_queue) end |
.parse_queues_option(value) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/solid_queue_guard/queue_coverage.rb', line 24 def parse_queues_option(value) case value when '*', nil ['*'] when String value.split(',').map(&:strip).reject(&:empty?) when Array value.map(&:to_s) else [] end end |
.uncovered_queues(required_queues, worker_queues) ⇒ Object
20 21 22 |
# File 'lib/solid_queue_guard/queue_coverage.rb', line 20 def uncovered_queues(required_queues, worker_queues) required_queues.reject { |queue_name| covers_all?(worker_queues, queue_name) } end |
.worker_queues_from_configuration(configuration = SolidQueue::Configuration.new) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/solid_queue_guard/queue_coverage.rb', line 7 def worker_queues_from_configuration(configuration = SolidQueue::Configuration.new) configuration.configured_processes .select { |process| process.kind == :worker } .flat_map { |process| parse_queues_option(process.attributes[:queues]) } .uniq end |