Class: Spec::ShouldBase
- Inherits:
-
Object
show all
- Defined in:
- lib/spec/api/helper/diff.rb,
lib/spec/api/helper/should_base.rb
Instance Method Summary
collapse
Instance Method Details
#default_message(expectation, expected = :no_expectation_specified) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/spec/api/helper/diff.rb', line 13
def default_message(expectation, expected=:no_expectation_specified)
result = old_default_message(expectation, expected)
if expected.is_a?(String)
result << "\nDiff:" << diff_as_string(@target.to_s, expected)
end
result
end
|
#diff_as_string(data_old, data_new, format = :unified, context_lines = 3) ⇒ Object
This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/spec/api/helper/diff.rb', line 23
def diff_as_string(data_old, data_new, format=:unified, context_lines=3)
data_old = data_old.split(/\n/).map! { |e| e.chomp }
data_new = data_new.split(/\n/).map! { |e| e.chomp }
output = ""
diffs = Diff::LCS.diff(data_old, data_new)
return output if diffs.empty?
oldhunk = hunk = nil
file_length_difference = 0
diffs.each do |piece|
begin
hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, context_lines,
file_length_difference)
file_length_difference = hunk.file_length_difference
next unless oldhunk
if (context_lines > 0) and hunk.overlaps?(oldhunk)
hunk.unshift(oldhunk)
else
output << oldhunk.diff(format)
end
ensure
oldhunk = hunk
output << "\n"
end
end
output << oldhunk.diff(format) << "\n"
end
|
#fail_with_message(message) ⇒ Object
#old_default_message ⇒ Object
12
|
# File 'lib/spec/api/helper/diff.rb', line 12
alias old_default_message default_message
|