Class: RSpec::Que::Matchers::QueueUp::QueueCount

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/que/queue_up/queue_count.rb

Constant Summary collapse

EXACTLY =
:==
AT_LEAST =
:>=
AT_MOST =
:<=

Instance Method Summary collapse

Constructor Details

#initialize(parent_matcher, comparator, number) ⇒ QueueCount

Returns a new instance of QueueCount.



12
13
14
15
16
# File 'lib/rspec/que/queue_up/queue_count.rb', line 12

def initialize(parent_matcher, comparator, number)
  @number = number
  @comparator = comparator
  @parent = parent_matcher
end

Instance Method Details

#at_least(n) ⇒ Object



32
33
34
# File 'lib/rspec/que/queue_up/queue_count.rb', line 32

def at_least(n)
  set(AT_LEAST, n)
end

#at_most(n) ⇒ Object



36
37
38
# File 'lib/rspec/que/queue_up/queue_count.rb', line 36

def at_most(n)
  set(AT_MOST, n)
end

#default?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/rspec/que/queue_up/queue_count.rb', line 60

def default?
  @comparator == EXACTLY && @number == 1
end

#descObject



48
49
50
51
52
53
54
# File 'lib/rspec/que/queue_up/queue_count.rb', line 48

def desc
  case @comparator
  when EXACTLY then "exactly #{@number} times"
  when AT_LEAST then "at least #{@number} times"
  when AT_MOST then "at most #{@number} times"
  end
end

#exactly(n) ⇒ Object



28
29
30
# File 'lib/rspec/que/queue_up/queue_count.rb', line 28

def exactly(n)
  set(EXACTLY, n)
end

#failed_msg(candidates) ⇒ Object



56
57
58
# File 'lib/rspec/que/queue_up/queue_count.rb', line 56

def failed_msg(candidates)
  "#{candidates.length} jobs"
end

#matches?(actual_number) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/rspec/que/queue_up/queue_count.rb', line 44

def matches?(actual_number)
  actual_number.send(@comparator, @number)
end

#onceObject



18
19
20
21
# File 'lib/rspec/que/queue_up/queue_count.rb', line 18

def once
  exactly(1)
  @parent
end

#timesObject



40
41
42
# File 'lib/rspec/que/queue_up/queue_count.rb', line 40

def times
  @parent
end

#twiceObject



23
24
25
26
# File 'lib/rspec/que/queue_up/queue_count.rb', line 23

def twice
  exactly(2)
  @parent
end