Object
# File lib/rspec/matchers/built_in/change.rb, line 5 5: def initialize(receiver=nil, message=nil, &block) 6: @message = message 7: @value_proc = block || lambda {receiver.__send__(message)} 8: @expected_after = @expected_before = @minimum = @maximum = @expected_delta = nil 9: @eval_before = @eval_after = false 10: end
# File lib/rspec/matchers/built_in/change.rb, line 53 53: def actual_delta 54: @actual_after - @actual_before 55: end
# File lib/rspec/matchers/built_in/change.rb, line 61 61: def by(expected_delta) 62: @expected_delta = expected_delta 63: self 64: end
# File lib/rspec/matchers/built_in/change.rb, line 66 66: def by_at_least(minimum) 67: @minimum = minimum 68: self 69: end
# File lib/rspec/matchers/built_in/change.rb, line 71 71: def by_at_most(maximum) 72: @maximum = maximum 73: self 74: end
# File lib/rspec/matchers/built_in/change.rb, line 88 88: def description 89: "change ##{message}" 90: end
# File lib/rspec/matchers/built_in/change.rb, line 28 28: def evaluate_value_proc 29: case val = @value_proc.call 30: when Enumerable 31: val.dup 32: else 33: val 34: end 35: end
# File lib/rspec/matchers/built_in/change.rb, line 37 37: def failure_message_for_should 38: if @eval_before && !expected_matches_actual?(@expected_before, @actual_before) 39: "#{message} should have initially been #{@expected_before.inspect}, but was #{@actual_before.inspect}" 40: elsif @eval_after && !expected_matches_actual?(@expected_after, @actual_after) 41: "#{message} should have been changed to #{@expected_after.inspect}, but is now #{@actual_after.inspect}" 42: elsif @expected_delta 43: "#{message} should have been changed by #{@expected_delta.inspect}, but was changed by #{actual_delta.inspect}" 44: elsif @minimum 45: "#{message} should have been changed by at least #{@minimum.inspect}, but was changed by #{actual_delta.inspect}" 46: elsif @maximum 47: "#{message} should have been changed by at most #{@maximum.inspect}, but was changed by #{actual_delta.inspect}" 48: else 49: "#{message} should have changed, but is still #{@actual_before.inspect}" 50: end 51: end
# File lib/rspec/matchers/built_in/change.rb, line 57 57: def failure_message_for_should_not 58: "#{message} should not have changed, but did change from #{@actual_before.inspect} to #{@actual_after.inspect}" 59: end
# File lib/rspec/matchers/built_in/change.rb, line 82 82: def from (before) 83: @eval_before = true 84: @expected_before = before 85: self 86: end
# File lib/rspec/matchers/built_in/change.rb, line 12 12: def matches?(event_proc) 13: raise_block_syntax_error if block_given? 14: 15: @actual_before = evaluate_value_proc 16: event_proc.call 17: @actual_after = evaluate_value_proc 18: 19: (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max? 20: end
# File lib/rspec/matchers/built_in/change.rb, line 98 98: def change_expected? 99: @expected_delta != 0 100: end
# File lib/rspec/matchers/built_in/change.rb, line 102 102: def changed? 103: @actual_before != @actual_after 104: end
# File lib/rspec/matchers/built_in/change.rb, line 126 126: def expected_matches_actual?(expected, actual) 127: expected === actual 128: end
# File lib/rspec/matchers/built_in/change.rb, line 110 110: def matches_after? 111: @eval_after ? expected_matches_actual?(@expected_after, @actual_after) : true 112: end
# File lib/rspec/matchers/built_in/change.rb, line 106 106: def matches_before? 107: @eval_before ? expected_matches_actual?(@expected_before, @actual_before) : true 108: end
# File lib/rspec/matchers/built_in/change.rb, line 114 114: def matches_expected_delta? 115: @expected_delta ? (@actual_before + @expected_delta == @actual_after) : true 116: end
# File lib/rspec/matchers/built_in/change.rb, line 122 122: def matches_max? 123: @maximum ? (@actual_after - @actual_before <= @maximum) : true 124: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.