Class: SimpleGit::Reference

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_git/reference.rb

Defined Under Namespace

Classes: ReferenceWrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#ptrObject

Returns the value of attribute ptr.



3
4
5
# File 'lib/simple_git/reference.rb', line 3

def ptr
  @ptr
end

Instance Method Details

#branch_nameObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/simple_git/reference.rb', line 19

def branch_name
  name_wrapper = FFI::MemoryPointer.new(:pointer)
  ret = Git2.git_branch_name(name_wrapper, @ptr)
  if ret != 0
    error = Git2::GitError.new(Git2.giterr_last)
    raise ArgumentError, error[:message].read_string
  end

  name_wrapper.read_pointer.read_string
end

#from_head(repo) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/simple_git/reference.rb', line 5

def from_head(repo)
  wrapper = ReferenceWrapper.new
  ret = Git2.git_repository_head(wrapper, repo.ptr)
  if ret != 0
    error = Git2::GitError.new(Git2.giterr_last)
    raise ArgumentError, error[:message].read_string
  end

  @ptr = wrapper[:ref]
  ObjectSpace.define_finalizer(self, self.class.finalize(@ptr))

  self
end

#to_objectObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/simple_git/reference.rb', line 30

def to_object
  wrapper = SimpleGit::Object::ObjectWrapper.new
  ret = Git2.git_reference_peel(wrapper, @ptr, :GIT_OBJ_ANY)
  if ret != 0
    error = Git2::GitError.new(Git2.giterr_last)
    raise ArgumentError, error[:message].read_string
  end

  Object.new.from_wrapper(wrapper)
end