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 265 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 279 def annotated? @annotated = @annotated.nil? ? (@base.lib.cat_file_type(name) == 'tag') : @annotated end
Private Instance Methods
Source
# File lib/git/object.rb, line 299 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