class Rugged::Tag
Constants
- GPG_SIGNATURE_PREFIX
Public Class Methods
extract_signature(repo, oid, prefix=GPG_SIGNATURE_PREFIX)
click to toggle source
# File lib/rugged/tag.rb, line 10 def self.extract_signature(repo, oid, prefix=GPG_SIGNATURE_PREFIX) object = repo.read(oid) unless object.type == :tag raise GitRPC::InvalidObject, "Invalid object type #{object.type}, expected tag" end if index = object.data.index(prefix) [ object.data.byteslice(index..-1), object.data.byteslice(0...index) ] else nil end end
Public Instance Methods
annotated?()
click to toggle source
static VALUE rb_git_tag_annotated_p(VALUE self) { return RTEST(rb_git_tag_annotation(self)) ? Qtrue : Qfalse; }
annotation → annotation or nil
click to toggle source
static VALUE rb_git_tag_annotation(VALUE self) { git_reference *ref, *resolved_ref; git_repository *repo; git_object *target; int error; VALUE rb_repo = rugged_owner(self); rugged_check_repo(rb_repo); Data_Get_Struct(self, git_reference, ref); Data_Get_Struct(rb_repo, git_repository, repo); error = git_reference_resolve(&resolved_ref, ref); rugged_exception_check(error); error = git_object_lookup(&target, repo, git_reference_target(resolved_ref), GIT_OBJ_TAG); git_reference_free(resolved_ref); if (error == GIT_ENOTFOUND) return Qnil; return rugged_object_new(rb_repo, target); }
name()
click to toggle source
# File lib/rugged/tag.rb, line 27 def name canonical_name.sub(%r{^refs/tags/}, "") end
target → git_object
click to toggle source
static VALUE rb_git_tag_target(VALUE self) { git_reference *ref, *resolved_ref; git_repository *repo; git_object *target; int error; VALUE rb_repo = rugged_owner(self); rugged_check_repo(rb_repo); Data_Get_Struct(self, git_reference, ref); Data_Get_Struct(rb_repo, git_repository, repo); error = git_reference_resolve(&resolved_ref, ref); rugged_exception_check(error); error = git_object_lookup(&target, repo, git_reference_target(resolved_ref), GIT_OBJ_ANY); git_reference_free(resolved_ref); rugged_exception_check(error); if (git_object_type(target) == GIT_OBJ_TAG) { git_object *annotation_target; error = git_tag_target(&annotation_target, (git_tag *)target); git_object_free(target); rugged_exception_check(error); return rugged_object_new(rb_repo, annotation_target); } else { return rugged_object_new(rb_repo, target); } }