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