Sha256: d06adc48e388e59e97c1ed59f628998c6a543eeebdd8a78eb7b3d5e14c9f2bad
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
module GitObjectBrowser module Models # Parse .git/index file class Index < Bindata attr_reader :version, :entry_count, :entries, :extensions, :sha1 def initialize(input) super(input) end def parse dirc = raw(4) if dirc != "DIRC" throw Exception.new("Illegal format.") end @version = int @entry_count = int @entries = parse_entries @extensions = parse_extensions @sha1 = hex(20) self end def parse_entries entries = [] @entry_count.times do |i| entries << IndexEntry.new(@in, @version) end return entries end def parse_extensions extensions = [] while signature = peek(4) if signature == "TREE" extensions << IndexTreeExtension.new(@in).parse elsif signature == "REUC" extensions << IndexReucExtension.new(@in).parse else break end end return extensions end def to_hash entries = [] @entries.each do |entry| entries << entry.to_hash end extensions = [] @extensions.each do |extension| extensions << extension.to_hash end return { :version => @version, :entry_count => @entry_count, :entries => entries, :extensions => extensions, :sha1 => @sha1, } end def self.path?(relpath) relpath == "index" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
git-object-browser-0.0.3 | lib/git-object-browser/models/index.rb |