class Precious::Views::Compare

Attributes

allow_editing[R]
diff[R]
message[R]
page[R]
versions[R]

Public Instance Methods

after() click to toggle source
# File lib/gollum/views/compare.rb, line 16
def after
  @versions[1][0..6]
end
before() click to toggle source
# File lib/gollum/views/compare.rb, line 12
def before
  @versions[0][0..6]
end
git_line?(line) click to toggle source
# File lib/gollum/views/compare.rb, line 104
def git_line?(line)
  !!(line =~ /^(\\ No newline|Binary files|@@)/)
end
left_diff_line_number(line) click to toggle source
# File lib/gollum/views/compare.rb, line 62
def left_diff_line_number(line)
  if git_line?(line)
    m, li                  = *line.match(/\-(\d+)/)
    @left_diff_line_number = li.to_i
    @current_line_number   = @left_diff_line_number
    ret                    = '...'
  elsif line[0] == ?-
    ret                    = @left_diff_line_number.to_s
    @left_diff_line_number += 1
    @current_line_number   = @left_diff_line_number - 1
  elsif line[0] == ?+
    ret = ' '
  else
    ret                    = @left_diff_line_number.to_s
    @left_diff_line_number += 1
    @current_line_number   = @left_diff_line_number - 1
  end
  ret
end
line_class(line) click to toggle source

private

# File lib/gollum/views/compare.rb, line 46
def line_class(line)
  if line =~ /^@@/
    'gc'
  elsif git_line?(line)
    'gg'
  elsif line =~ /^\+/
    'gi'
  elsif line =~ /^\-/
    'gd'
  else
    ''
  end
end
lines(diff = @diff) click to toggle source
# File lib/gollum/views/compare.rb, line 20
def lines(diff = @diff)
  lines = []
  lines_to_parse = diff.split("\n")[3..-1]
  lines_to_parse = lines_to_parse[2..-1] if lines_to_parse[0] =~ /^(---|rename to )/

  if lines_to_parse.nil? || lines_to_parse.empty?
    lines_to_parse = []  # File is created without content
  else
    lines_to_parse = lines_to_parse[1..-1] if lines_to_parse[0].start_with?('+++')
  end

  lines_to_parse.each_with_index do |line, line_index|
    lines << { :line  => line,
               :class => line_class(line),
               :ldln  => left_diff_line_number(line),
               :rdln  => right_diff_line_number(line) }
  end
  lines
end
right_diff_line_number(line) click to toggle source
# File lib/gollum/views/compare.rb, line 84
def right_diff_line_number(line)
  if git_line?(line)
    m, ri                   = *line.match(/\+(\d+)/)
    @right_diff_line_number = ri.to_i
    @current_line_number    = @right_diff_line_number
    ret                     = '...'
  elsif line[0] == ?-
    ret = ' '
  elsif line[0] == ?+
    ret                     = @right_diff_line_number.to_s
    @right_diff_line_number += 1
    @current_line_number    = @right_diff_line_number - 1
  else
    ret                     = @right_diff_line_number.to_s
    @right_diff_line_number += 1
    @current_line_number    = @right_diff_line_number - 1
  end
  ret
end
show_revert() click to toggle source
# File lib/gollum/views/compare.rb, line 40
def show_revert
  !@message
end
title() click to toggle source
# File lib/gollum/views/compare.rb, line 8
def title
  [t[:comparison_of], @page.title].join(" ")
end