class GitObjectBrowser::Models::Reflog
Public Class Methods
new(input)
click to toggle source
# File lib/git-object-browser/models/reflog.rb, line 7 def initialize(input) @in = input end
path?(relpath)
click to toggle source
# File lib/git-object-browser/models/reflog.rb, line 48 def self.path?(relpath) return relpath =~ %r{\Alogs/.+} end
Public Instance Methods
parse()
click to toggle source
# File lib/git-object-browser/models/reflog.rb, line 11 def parse @entries = [] @content = @in.read(nil) @content = @content.force_encoding('UTF-8') unless @content.valid_encoding? @content = '(not UTF-8)' return self end parse_logs self end
to_hash()
click to toggle source
# File lib/git-object-browser/models/reflog.rb, line 44 def to_hash return { :content => @content, :entries => @entries } end
Private Instance Methods
parse_logs()
click to toggle source
# File lib/git-object-browser/models/reflog.rb, line 23 def parse_logs @content.split(/\n/).each do |line| log = {} (data, log[:message]) = line.split(/\t/, 2) if data.to_s =~ /\A([0-9a-f]{40}) ([0-9a-f]{40}) (.+)/ log[:sha1_from] = $1 log[:sha1_to] = $2 data = $3 if data =~ /(.*) <(.*)> (\d+)(?: ((?:(?:\+|-)(?:\d{4}|\d{2}:\d{2}))|Z))?\z/ log[:name] = $1 log[:email] = $2 log[:unixtime] = $3 log[:timezone] = $4 log[:date] = GitDate.new($3, $4).to_s end end @entries << log end end