class Unified::Chunk
Attributes
lines[R]
modified_line_number[R]
original_line_number[R]
section_header[R]
Public Class Methods
new(attrs = {})
click to toggle source
# File lib/unified/chunk.rb, line 9 def initialize(attrs = {}) @original_line_number = attrs[:original] @modified_line_number = attrs[:modified] @section_header = attrs[:section_header] @lines = attrs[:lines].map {|s| Unified::Line.new(s) } end
Public Instance Methods
==(another)
click to toggle source
# File lib/unified/chunk.rb, line 77 def ==(another) @modified_line_number == another.modified_line_number and @original_line_number == another.original_line_number and @section_header == another.section_header and @lines = another.lines end
each_line() { |line, nil, modified_line_number| ... }
click to toggle source
Iterator for lines passing |line, original_line_number
, modified_line_number
| as block arguments
# File lib/unified/chunk.rb, line 56 def each_line original_line_number = @original_line_number modified_line_number = @modified_line_number @lines.each do |line| if line.addition? yield line, nil, modified_line_number modified_line_number += 1 elsif line.deletion? yield line, original_line_number, nil original_line_number += 1 elsif line.unchanged? yield line, original_line_number, modified_line_number original_line_number += 1 modified_line_number += 1 else yield line end end end
header()
click to toggle source
# File lib/unified/chunk.rb, line 40 def header parts = "@@" parts << " -#{@original_line_number}" parts << ",#{number_of_original_lines}" unless number_of_original_lines == 1 parts << " +#{@modified_line_number}" parts << ",#{number_of_modified_lines}" unless number_of_modified_lines == 1 parts << " @@" parts << " #{@section_header}" unless @section_header.nil? parts end
number_of_added_lines()
click to toggle source
# File lib/unified/chunk.rb, line 24 def number_of_added_lines @number_of_deleted_lines ||= number_of_lines_by_type(:addition?) end
number_of_deleted_lines()
click to toggle source
# File lib/unified/chunk.rb, line 20 def number_of_deleted_lines @number_of_added_lines ||= number_of_lines_by_type(:deletion?) end
number_of_modified_lines()
click to toggle source
# File lib/unified/chunk.rb, line 36 def number_of_modified_lines @number_of_modified_lines ||= number_of_unchanged_lines + number_of_added_lines end
number_of_original_lines()
click to toggle source
# File lib/unified/chunk.rb, line 32 def number_of_original_lines @number_of_original_lines ||= number_of_unchanged_lines + number_of_deleted_lines end
number_of_unchanged_lines()
click to toggle source
# File lib/unified/chunk.rb, line 28 def number_of_unchanged_lines @number_of_unchanged_lines ||= number_of_lines_by_type(:unchanged?) end
to_s()
click to toggle source
# File lib/unified/chunk.rb, line 51 def to_s header + "\n" + @lines.join("\n") end
total_number_of_lines()
click to toggle source
# File lib/unified/chunk.rb, line 16 def total_number_of_lines @number_of_lines ||= @lines.size end
Private Instance Methods
number_of_lines_by_type(type)
click to toggle source
# File lib/unified/chunk.rb, line 86 def number_of_lines_by_type(type) @lines.inject(0) {|total, line| line.send(type) ? total + 1 : total} end