class Git::Blame::PorcelainEntry

Attributes

line_number[R]

Public Class Methods

new(porcelain_output, line_number = nil) click to toggle source
# File lib/Git/Blame.rb, line 42
def initialize(porcelain_output, line_number = nil)
  @porcelain_output = porcelain_output
  @line_number = line_number
end
parse(porcelain_output) click to toggle source
# File lib/Git/Blame.rb, line 34
def parse(porcelain_output)
  new(porcelain_output).parse
end

Public Instance Methods

code() click to toggle source
# File lib/Git/Blame.rb, line 65
def code
  lines.last
end
commit_hash() click to toggle source
# File lib/Git/Blame.rb, line 57
def commit_hash
  lines.first.split.first
end
parse() click to toggle source
# File lib/Git/Blame.rb, line 47
def parse
  lines_with_keys.each do |line|
    variable_name = line.split.first.tr('-','_')
    value = line.split.all_but_first.join(' ')
    instance_variable_set("@#{variable_name}", value)
    self.class.class_eval("attr_reader :#{variable_name}")
  end
  self
end
previous_commit_hash() click to toggle source
# File lib/Git/Blame.rb, line 61
def previous_commit_hash
  @previous.split.first
end

Private Instance Methods

lines() click to toggle source
# File lib/Git/Blame.rb, line 71
def lines
  @lines ||= @porcelain_output.split("\n")
end
lines_with_keys() click to toggle source
# File lib/Git/Blame.rb, line 75
def lines_with_keys
  @lines_with_keys ||= lines.all_but_first.all_but_last
end