class RSpec::Matchers::BuiltIn::YieldControl
Public Class Methods
new()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 68 def initialize @expectation_type = nil @expected_yields_count = nil end
Public Instance Methods
at_least(number)
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 103 def at_least(number) set_expected_yields_count(:>=, number) self end
at_most(number)
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 98 def at_most(number) set_expected_yields_count(:<=, number) self end
exactly(number)
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 93 def exactly(number) set_expected_yields_count(:==, number) self end
failure_message_for_should()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 112 def failure_message_for_should 'expected given block to yield control'.tap do |failure_message| failure_message << relativity_failure_message end end
failure_message_for_should_not()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 118 def failure_message_for_should_not 'expected given block not to yield control'.tap do |failure_message| failure_message << relativity_failure_message end end
matches?(block)
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 73 def matches?(block) probe = YieldProbe.probe(block) if @expectation_type probe.num_yields.send(@expectation_type, @expected_yields_count) else probe.yielded_once?(:yield_control) end end
once()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 83 def once exactly(1) self end
times()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 108 def times self end
twice()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 88 def twice exactly(2) self end
Private Instance Methods
human_readable_count()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 148 def human_readable_count case @expected_yields_count when 1 then "once" when 2 then "twice" else "#{@expected_yields_count} times" end end
human_readable_expecation_type()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 140 def human_readable_expecation_type case @expectation_type when :<= then 'at most ' when :>= then 'at least ' else '' end end
relativity_failure_message()
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 135 def relativity_failure_message return '' unless @expected_yields_count " #{human_readable_expecation_type}#{human_readable_count}" end
set_expected_yields_count(relativity, n)
click to toggle source
# File lib/rspec/matchers/built_in/yield.rb, line 126 def set_expected_yields_count(relativity, n) @expectation_type = relativity @expected_yields_count = case n when Numeric then n when :once then 1 when :twice then 2 end end