Class: Git::Object::Tag

Inherits:
AbstractObject show all
Defined in:
lib/git/object.rb

Overview

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

Instance Attribute Summary collapse

Attributes inherited from AbstractObject

#mode, #objectish, #size, #type

Instance Method Summary collapse

Methods inherited from AbstractObject

#archive, #blob?, #commit?, #contents, #contents_array, #diff, #grep, #log, #sha, #to_s, #tree?

Constructor Details

#initialize(base, name) ⇒ Tag #initialize(base, sha, name) ⇒ Tag

Returns a new instance of Tag.

Overloads:

  • #initialize(base, name) ⇒ Tag

    Parameters:

    • base (Git::Repository)

      the git repository

    • name (String)

      the name of the tag

  • #initialize(base, sha, name) ⇒ Tag

    Parameters:

    • base (Git::Repository)

      the git repository

    • sha (String)

      the SHA of the tag object

    • name (String)

      the name of the tag



325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/git/object.rb', line 325

def initialize(base, sha, name = nil)
  if name.nil?
    name = sha
    sha = base.tag_sha(name)
    raise Git::UnexpectedResultError, "Tag '#{name}' does not exist." if sha == ''
  end

  super(base, sha)

  @name = name
  @annotated = nil
  @loaded = false
end

Instance Attribute Details

#name

Returns the value of attribute name.



309
310
311
# File 'lib/git/object.rb', line 309

def name
  @name
end

Instance Method Details

#annotated?Boolean

Returns:

  • (Boolean)


339
340
341
# File 'lib/git/object.rb', line 339

def annotated?
  @annotated = @annotated.nil? ? (object_repository.cat_file_type(name) == 'tag') : @annotated
end

#message



343
344
345
346
# File 'lib/git/object.rb', line 343

def message
  check_tag
  @message
end

#tag?Boolean

Returns:

  • (Boolean)


348
349
350
# File 'lib/git/object.rb', line 348

def tag?
  true
end

#tagger



352
353
354
355
# File 'lib/git/object.rb', line 352

def tagger
  check_tag
  @tagger
end