class SimpleGit::Repository

Attributes

ptr[RW]

Public Class Methods

new(path) click to toggle source
# File lib/simple_git/repository.rb, line 5
def initialize(path)
  wrapper = RepositoryWrapper.new
  ret = Git2.git_repository_open(wrapper, path)
  if ret != 0
    error = Git2::GitError.new(Git2.giterr_last)
    raise ArgumentError, error[:message].read_string
  end

  @ptr = wrapper[:repo]

  ObjectSpace.define_finalizer(self, self.class.finalize(@ptr))
end

Private Class Methods

finalize(ptr) click to toggle source
# File lib/simple_git/repository.rb, line 35
def self.finalize(ptr)
  proc { Git2.git_repository_free(ptr) }
end

Public Instance Methods

head() click to toggle source
# File lib/simple_git/repository.rb, line 29
def head
  Reference.new.from_head(self)
end
revparse(refspec) click to toggle source
# File lib/simple_git/repository.rb, line 18
def revparse(refspec)
  wrapper = SimpleGit::Object::ObjectWrapper.new
  ret = Git2.git_revparse_single(wrapper, @ptr, refspec)
  if ret != 0
    error = Git2::GitError.new(Git2.giterr_last)
    raise ArgumentError, error[:message].read_string
  end

  Object.new.from_wrapper(wrapper)
end