Class: PcQueues::QueueRuleSet

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/pc_queues/queue_rule_set.rb

Overview

A QueueRuleSet is a collection of QueueRules that can is evaluated as an AND/OR clause depending on the value of is_any which indicates an OR

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.accessible_attributesObject

attr_accessible :is_any



14
15
16
# File 'lib/pc_queues/queue_rule_set.rb', line 14

def self.accessible_attributes
  [:is_any]
end

Instance Method Details

#all_pass?(enqueuable, *args) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
# File 'lib/pc_queues/queue_rule_set.rb', line 34

def all_pass?(enqueuable, *args)
  queue_rules.all.each { |rule| return false unless rule.passes?(enqueuable, *args) }
  true
end

#any_pass?(enqueuable, *args) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/pc_queues/queue_rule_set.rb', line 29

def any_pass?(enqueuable, *args)
  queue_rules.all.each { |rule| return true if rule.passes?(enqueuable, *args) }
  false
end

#passes?(enqueuable, *args) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
# File 'lib/pc_queues/queue_rule_set.rb', line 21

def passes?(enqueuable, *args)
  if is_any
    any_pass?(enqueuable, *args)
  else
    all_pass?(enqueuable, *args)
  end
end