class Git::Blame
Public Class Methods
new(filename, line_number = nil)
click to toggle source
# File lib/Git/Blame.rb, line 81 def initialize(filename, line_number = nil) @filename = filename @line_number = line_number end
Public Instance Methods
blame_output()
click to toggle source
# File lib/Git/Blame.rb, line 94 def blame_output `#{command_string}` end
command_string()
click to toggle source
# File lib/Git/Blame.rb, line 86 def command_string if @line_number "git --no-pager blame -L #{@line_number},#{@line_number} #{@filename} --line-porcelain" else "git --no-pager blame #{@filename} --line-porcelain" end end
entries()
click to toggle source
# File lib/Git/Blame.rb, line 98 def entries line_count = 0 porcelain_entry_string = '' entries = [] blame_array = blame_output.split("\n") line_number = 0 i = -1 until i >= blame_array.size - 1 until blame_array[i].split.first == 'filename' porcelain_entry_string << blame_array[i += 1] porcelain_entry_string << "\n" end porcelain_entry_string << blame_array[i += 1] porcelain_entry_string << "\n" entries << PorcelainEntry.new(porcelain_entry_string, line_number += 1).parse line_count = 0 porcelain_entry_string = '' end entries end
find(line_number)
click to toggle source
# File lib/Git/Blame.rb, line 119 def find(line_number) entries.detect{|entry| entry.line_number == line_number} end