Class: Git::TagInfo
- Inherits:
-
Data
- Object
- Data
- Git::TagInfo
- Defined in:
- lib/git/tag_info.rb
Overview
Value object representing tag metadata from git tag output
This is a lightweight, immutable data structure returned by tag listing commands. It contains only the data parsed from git output without any repository context or operations.
Instance Attribute Summary collapse
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#objecttype ⇒ Object
readonly
Returns the value of attribute objecttype.
-
#oid ⇒ Object
readonly
Returns the value of attribute oid.
-
#tagger_date ⇒ Object
readonly
Returns the value of attribute tagger_date.
-
#tagger_email ⇒ Object
readonly
Returns the value of attribute tagger_email.
-
#tagger_name ⇒ Object
readonly
Returns the value of attribute tagger_name.
-
#target_oid ⇒ Object
readonly
Returns the value of attribute target_oid.
Instance Method Summary collapse
-
#annotated? ⇒ Boolean
True if this is an annotated tag (oid is present).
-
#lightweight? ⇒ Boolean
True if this is a lightweight tag (oid is nil).
-
#tagger ⇒ Git::Author?
Return the tagger as an Author object.
Instance Attribute Details
#message ⇒ Object (readonly)
Returns the value of attribute message
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#name ⇒ Object (readonly)
Returns the value of attribute name
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#objecttype ⇒ Object (readonly)
Returns the value of attribute objecttype
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#oid ⇒ Object (readonly)
Returns the value of attribute oid
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#tagger_date ⇒ Object (readonly)
Returns the value of attribute tagger_date
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#tagger_email ⇒ Object (readonly)
Returns the value of attribute tagger_email
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#tagger_name ⇒ Object (readonly)
Returns the value of attribute tagger_name
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
#target_oid ⇒ Object (readonly)
Returns the value of attribute target_oid
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/git/tag_info.rb', line 79 TagInfo = Data.define(:name, :oid, :target_oid, :objecttype, :tagger_name, :tagger_email, :tagger_date, :message) do # @return [Boolean] true if this is an annotated tag (oid is present) def annotated? !oid.nil? end # @return [Boolean] true if this is a lightweight tag (oid is nil) def lightweight? oid.nil? end # Return the tagger as an Author object # # @return [Git::Author, nil] the tagger as an Author object, or nil for lightweight tags def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end end |
Instance Method Details
#annotated? ⇒ Boolean
Returns true if this is an annotated tag (oid is present).
81 82 83 |
# File 'lib/git/tag_info.rb', line 81 def annotated? !oid.nil? end |
#lightweight? ⇒ Boolean
Returns true if this is a lightweight tag (oid is nil).
86 87 88 |
# File 'lib/git/tag_info.rb', line 86 def lightweight? oid.nil? end |
#tagger ⇒ Git::Author?
Return the tagger as an Author object
93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/git/tag_info.rb', line 93 def tagger return nil unless annotated? && tagger_name && tagger_email # Git::Author expects format "Name <email> timestamp timezone" # We construct a minimal format that will parse correctly = Git::Author.new('') .name = tagger_name # Remove angle brackets if present .email = tagger_email.gsub(/\A<|>\z/, '') end |