Method: Rugged::Reference#target
- Defined in:
- ext/rugged/rugged_reference.c
#target_id ⇒ Object #target_id ⇒ Object
Return the target of reference.
If reference is a symbolic reference, it returns the target reference object.
If reference is a direct reference, it returns the target object.
ref1.type #=> :symbolic
ref1.target #=> #<Rugged::Reference ...>
ref2.type #=> :direct
ref2.target #=> #<Rugged::Commit ...>
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'ext/rugged/rugged_reference.c', line 113 static VALUE rb_git_ref_target(VALUE self) { git_reference *ref; Data_Get_Struct(self, git_reference, ref); if (git_reference_type(ref) == GIT_REF_OID) { git_object *target; rugged_exception_check( git_object_lookup(&target, git_reference_owner(ref), git_reference_target(ref), GIT_OBJ_ANY) ); return rugged_object_new(rugged_owner(self), target); } else { git_reference *target; rugged_exception_check( git_reference_lookup(&target, git_reference_owner(ref), git_reference_symbolic_target(ref)) ); return rugged_ref_new(rb_cRuggedReference, rugged_owner(self), target); } } |