Class: PcQueues::QueueRules::SampleQueueRule

Inherits:
PcQueues::QueueRule show all
Defined in:
lib/pc_queues/queue_rules/sample_queue_rule.rb

Overview

A SampleQueueRule is a QueueRule that will ‘pass’ for a perscribed sample of occurrences

Sampling is random, so you many find slightly more or less than the perscribed number of items passing.

Constant Summary collapse

@@die =
Random.new

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PcQueues::QueueRule

accessible_attributes

Class Method Details

.options(opts = {}) ⇒ Object



18
19
20
21
22
# File 'lib/pc_queues/queue_rules/sample_queue_rule.rb', line 18

def self.options(opts = {})
  opts[:numeric_value] ||= opts[:sample_percent]
  opts.except! :sample_percent
  super
end

Instance Method Details

#passes?(obj, *args) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/pc_queues/queue_rules/sample_queue_rule.rb', line 30

def passes?(obj, *args)
  sample_percent == 100 || @@die.rand(100) < sample_percent
end

#sample_percentObject



26
27
28
# File 'lib/pc_queues/queue_rules/sample_queue_rule.rb', line 26

def sample_percent
  numeric_value
end