class Unified::Diff
Attributes
chunks[R]
modified_filename[R]
modified_revision[R]
original_filename[R]
original_revision[R]
Public Class Methods
new(attrs={})
click to toggle source
# File lib/unified/diff.rb, line 11 def initialize(attrs={}) @original_filename = attrs[:original_filename] @modified_filename = attrs[:modified_filename] @original_revision = attrs[:original_revision] @modified_revision = attrs[:modified_revision] @chunks = attrs[:chunks] end
parse!(content)
click to toggle source
# File lib/unified/diff.rb, line 19 def self.parse!(content) begin Unified::Transformer.new.apply(Unified::Parser.new.parse(content)) rescue StandardError => e raise Unified::ParseError, e.message end end
Public Instance Methods
each_chunk() { |chunk| ... }
click to toggle source
# File lib/unified/diff.rb, line 67 def each_chunk @chunks.each do |chunk| yield chunk end end
header()
click to toggle source
# File lib/unified/diff.rb, line 55 def header "--- #{@original_filename}\t#{@original_revision}\n+++ #{modified_filename}\t#{@modified_revision}" end
number_of_added_lines()
click to toggle source
# File lib/unified/diff.rb, line 31 def number_of_added_lines @number_of_added_lines ||= @chunks.inject(0) {|total, chunk| total + chunk.number_of_added_lines} end
number_of_deleted_lines()
click to toggle source
# File lib/unified/diff.rb, line 35 def number_of_deleted_lines @number_of_deleted_lines ||= @chunks.inject(0) {|total, chunk| total + chunk.number_of_deleted_lines} end
number_of_modified_lines()
click to toggle source
# File lib/unified/diff.rb, line 43 def number_of_modified_lines @number_of_modified_lines ||= number_of_deleted_lines + number_of_added_lines end
number_of_unchanged_lines()
click to toggle source
# File lib/unified/diff.rb, line 39 def number_of_unchanged_lines @number_of_unchanged_lines ||= @chunks.inject(0) {|total, chunk| total + chunk.number_of_unchanged_lines} end
proportion_of_added_lines()
click to toggle source
# File lib/unified/diff.rb, line 51 def proportion_of_added_lines @proportion_of_added_lines ||= 100 - proportion_of_deleted_lines end
proportion_of_deleted_lines()
click to toggle source
# File lib/unified/diff.rb, line 47 def proportion_of_deleted_lines @proportion_of_deleted_lines ||= ((100.0 * number_of_deleted_lines / number_of_modified_lines)).round end
to_s()
click to toggle source
# File lib/unified/diff.rb, line 59 def to_s str = [header] @chunks.each do |chunk| str << chunk.to_s end str.join("\n") end
total_number_of_lines()
click to toggle source
# File lib/unified/diff.rb, line 27 def total_number_of_lines @total_number_of_lines ||= number_of_added_lines + number_of_deleted_lines + number_of_unchanged_lines end