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
name[RW]
Public Class Methods
new(base, sha, name = nil)
click to toggle source
@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
# 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
Public Instance Methods
annotated?()
click to toggle source
# File lib/git/object.rb, line 279 def annotated? @annotated = @annotated.nil? ? (@base.lib.cat_file_type(name) == 'tag') : @annotated end
message()
click to toggle source
# File lib/git/object.rb, line 283 def message check_tag @message end
tag?()
click to toggle source
# File lib/git/object.rb, line 288 def tag? true end
tagger()
click to toggle source
# File lib/git/object.rb, line 292 def tagger check_tag @tagger end
Private Instance Methods
check_tag()
click to toggle 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