class MotionExpect::Matcher::Change
Public Class Methods
new(change_block)
click to toggle source
# File lib/motion-expect/matcher/change.rb, line 3 def initialize(change_block) @change_block = change_block end
Public Instance Methods
by(amount)
click to toggle source
# File lib/motion-expect/matcher/change.rb, line 7 def by(amount) @change_amount = amount self end
fail!(subject, negated)
click to toggle source
# File lib/motion-expect/matcher/change.rb, line 24 def fail!(subject, negated) raise FailedExpectation.new(FailMessageRenderer.message_for_change(negated, @change_amount, @value_diff)) end
matches?(subject, &expectation_block)
click to toggle source
# File lib/motion-expect/matcher/change.rb, line 12 def matches?(subject, &expectation_block) old_value = @change_block.call expectation_block.call new_value = @change_block.call if @change_amount @value_diff = new_value - old_value @value_diff == @change_amount else new_value != old_value end end