Class: Git::TagDeleteResult

Inherits:
Data
  • Object
show all
Defined in:
lib/git/tag_delete_result.rb

Overview

Represents the result of a tag delete operation

This is an immutable data object returned by Commands::Tag::Delete#call. It contains information about which tags were successfully deleted and which failed to be deleted, along with the reason for each failure.

Git's git tag -d command uses "best effort" semantics - it deletes as many tags as possible and reports errors for those that couldn't be deleted. This result object reflects that behavior, allowing callers to inspect both successes and failures.

Examples:

Successful deletion of all tags

result = tag_delete.call('v1.0.0', 'v2.0.0')
result.success?            #=> true
result.deleted.map(&:name) #=> ['v1.0.0', 'v2.0.0']
result.not_deleted         #=> []

Partial failure (some tags deleted, some not found)

result = tag_delete.call('v1.0.0', 'nonexistent', 'v2.0.0')
result.success?                    #=> false
result.deleted.map(&:name)         #=> ['v1.0.0', 'v2.0.0']
result.not_deleted.first.name          #=> 'nonexistent'
result.not_deleted.first.error_message #=> "tag 'nonexistent' not found."

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#deletedObject (readonly)

Returns the value of attribute deleted

Returns:

  • (Object)

    the current value of deleted



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/git/tag_delete_result.rb', line 45

TagDeleteResult = Data.define(:deleted, :not_deleted) do
  # Returns true if all requested tags were successfully deleted
  #
  # @return [Boolean] true if no tags failed to delete, false otherwise
  #
  # @example
  #   result = tag_delete.call('v1.0.0')
  #   if result.success?
  #     puts "All tags deleted successfully"
  #   else
  #     puts "Some tags could not be deleted:"
  #     result.not_deleted.each { |f| puts "  #{f.name}: #{f.error_message}" }
  #   end
  #
  def success?
    not_deleted.empty?
  end
end

#not_deletedObject (readonly)

Returns the value of attribute not_deleted

Returns:

  • (Object)

    the current value of not_deleted



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/git/tag_delete_result.rb', line 45

TagDeleteResult = Data.define(:deleted, :not_deleted) do
  # Returns true if all requested tags were successfully deleted
  #
  # @return [Boolean] true if no tags failed to delete, false otherwise
  #
  # @example
  #   result = tag_delete.call('v1.0.0')
  #   if result.success?
  #     puts "All tags deleted successfully"
  #   else
  #     puts "Some tags could not be deleted:"
  #     result.not_deleted.each { |f| puts "  #{f.name}: #{f.error_message}" }
  #   end
  #
  def success?
    not_deleted.empty?
  end
end

Instance Method Details

#success?Boolean

Returns true if all requested tags were successfully deleted

Examples:

result = tag_delete.call('v1.0.0')
if result.success?
  puts "All tags deleted successfully"
else
  puts "Some tags could not be deleted:"
  result.not_deleted.each { |f| puts "  #{f.name}: #{f.error_message}" }
end

Returns:

  • (Boolean)

    true if no tags failed to delete, false otherwise



59
60
61
# File 'lib/git/tag_delete_result.rb', line 59

def success?
  not_deleted.empty?
end