class GitObjectBrowser::Models::WrappedObject

Public Class Methods

new(root, path, obj) click to toggle source
Calls superclass method
# File lib/git-object-browser/models/wrapped_object.rb, line 8
def initialize(root, path, obj)
  super()
  self[:type] = {
    Directory    => 'directory',
    PlainFile    => 'file',
    Index        => 'index',
    GitObject    => 'object',
    Ref          => 'ref',
    Reflog       => 'reflog',
    PackIndex    => 'pack_index',
    PackFile     => 'pack_file',
    PackedObject => 'packed_object',
    InfoRefs     => 'info_refs',
    PackedRefs   => 'packed_refs',
  }[obj.class]

  self[:object] = obj.to_hash
  self[:root] = root
  self[:path] = path
  self[:working_dir] = File.basename(File.dirname(root.to_s))

  case(self[:type])
  when 'packed_object'
    sha1 = self[:object][:object][:sha1]
    unpacked_file = File.join(root.to_s, 'objects', sha1[0..1], sha1[2..-1]).to_s
    self[:unpacked] = File.exist?(unpacked_file)
  when 'pack_index'
    self.merge!(obj.page_data)
  end
end