# File lib/grit/git-ruby/object.rb, line 182 def self.from_raw(rawobject, repository=nil) raw = StringIO.new(rawobject.content) entries = [] while !raw.eof? mode = Grit::GitRuby.read_bytes_until(raw, ' ') file_name = Grit::GitRuby.read_bytes_until(raw, "\0") raw_sha = raw.read(20) sha = raw_sha.unpack("H*").first entries << DirectoryEntry.new(mode, file_name, sha) end new(entries, repository) end