Class: VcDiff

Inherits:
Object
  • Object
show all
Defined in:
lib/output/vc_diff.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeVcDiff

Returns a new instance of VcDiff.



8
9
10
11
12
13
# File 'lib/output/vc_diff.rb', line 8

def initialize
  @content = ""
  @last_lines = []
  @old_line = 1
  @new_line = 1
end

Instance Attribute Details

#contentObject

Returns the value of attribute content.



2
3
4
# File 'lib/output/vc_diff.rb', line 2

def content
  @content
end

#lastObject

Returns the value of attribute last.



6
7
8
# File 'lib/output/vc_diff.rb', line 6

def last
  @last
end

#last_linesObject

Returns the value of attribute last_lines.



5
6
7
# File 'lib/output/vc_diff.rb', line 5

def last_lines
  @last_lines
end

#new_lineObject

Returns the value of attribute new_line.



4
5
6
# File 'lib/output/vc_diff.rb', line 4

def new_line
  @new_line
end

#old_lineObject

Returns the value of attribute old_line.



3
4
5
# File 'lib/output/vc_diff.rb', line 3

def old_line
  @old_line
end

Instance Method Details

#add_last_lines(n = 3) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/output/vc_diff.rb', line 49

def add_last_lines(n = 3)
  @content << %Q|<tr><td colspan="4">Next Change: </td></tr>\n|
  start = @last_lines.length - n
  start = 0 if start < 0
  start.upto @last_lines.length do |i|
    @content << @last_lines[i] if @last_lines[i]
  end
  @last_lines = []
end

#change(event) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/output/vc_diff.rb', line 15

def change(event)
  add_last_lines unless @last == :change
  @content << %Q|<tr><td>#{old_line}. </td><td><pre class="only_a">#{event.old_element}</pre></td><td><pre class="only_b">#{event.new_element}</pre></td><td>#{new_line}. </td></tr>\n|

  @last = :change
  @old_line += 1
  @new_line += 1
end

#discard_a(event) ⇒ Object

This will be called when there is a line in A that isn’t in B



32
33
34
35
36
37
38
# File 'lib/output/vc_diff.rb', line 32

def discard_a(event)
  add_last_lines unless @last == :discard_a
  @content << %Q|<tr><td>#{old_line}. </td><td><pre class="only_a">#{event.old_element}</pre></td><td></td><td></td></tr>\n|

  @last = :discard_a
  @old_line += 1
end

#discard_b(event) ⇒ Object

This will be called when there is a line in B that isn’t in A



41
42
43
44
45
46
47
# File 'lib/output/vc_diff.rb', line 41

def discard_b(event)
  add_last_lines unless @last == :discard_b
  @content << %Q|<tr><td></td><td></td><td><pre class="only_b">#{event.new_element}</pre></td><td>#{new_line}. </td></tr>\n|

  @last = :discard_b
  @new_line += 1
end

#match(event) ⇒ Object

This will be called with both lines are the same



25
26
27
28
29
# File 'lib/output/vc_diff.rb', line 25

def match(event)
  @last_lines.push %Q|<tr><td>#{old_line}. </td><td colspan="2"><pre class="match">#{event.old_element}</pre></td><td>#{new_line}. </td></tr>\n|
  @old_line += 1
  @new_line += 1
end