class Git::Object::AbstractObject::Tag
A Git tag object
This class represents a tag in Git, which can be either annotated or lightweight.
Annotated tags contain additional metadata such as the taggerโs name, email, and the date when the tag was created, along with a message.
TODO: Annotated tags are not objects
Attributes
Public Class Methods
Source
# File lib/git/object.rb, line 268 def initialize(base, sha, name = nil) if name.nil? name = sha sha = base.lib.tag_sha(name) raise Git::UnexpectedResultError, "Tag '#{name}' does not exist." if sha == '' end super(base, sha) @name = name @annotated = nil @loaded = false end
@overload initialize(base, name)
@param base [Git::Base] The Git base object @param name [String] The name of the tag
@overload initialize(base, sha, name)
@param base [Git::Base] The Git base object @param sha [String] The SHA of the tag object @param name [String] The name of the tag
Calls superclass method
Git::Object::AbstractObject::new
Public Instance Methods
Source
# File lib/git/object.rb, line 282 def annotated? @annotated = @annotated.nil? ? (@base.lib.cat_file_type(name) == 'tag') : @annotated end
Private Instance Methods
Source
# File lib/git/object.rb, line 302 def check_tag return if @loaded if annotated? tdata = @base.lib.cat_file_tag(@name) @message = tdata['message'].chomp @tagger = Git::Author.new(tdata['tagger']) else @message = @tagger = nil end @loaded = true end