Sha256: 5bfa8b142195ada3e22eb6240c3eed67b624df3b990f3c3b31d4bbe84c65bac4

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module Rugged
  class Tag < Rugged::Reference
    GPG_SIGNATURE_PREFIX = "-----BEGIN PGP SIGNATURE-----".freeze

    def self.extract_signature(repo, oid, prefix=GPG_SIGNATURE_PREFIX)
      object = repo.read(oid)

      unless object.type == :tag
        raise GitRPC::InvalidObject, "Invalid object type #{object.type}, expected tag"
      end

      if index = object.data.index(prefix)
        [
          object.data.byteslice(index..-1),
          object.data.byteslice(0...index)
        ]
      else
        [nil, object.data]
      end
    end

    def name
      canonical_name.sub(%r{^refs/tags/}, "")
    end

    class Annotation
      def self.prettify_message(msg, strip_comments = true)
        Rugged::prettify_message(msg, strip_comments)
      end

      def inspect
        "#<Rugged::Tag::Annotation:#{object_id} {name: #{name.inspect}, message: #{message.inspect}, target: #{target.inspect}>"
      end

      def to_hash
        {
          :message => message,
          :name => name,
          :target => target,
          :tagger => tagger,
        }
      end

      def modify(new_args, force=True)
        args = self.to_hash.merge(new_args)
        Tag.create(args, force)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
rugged-0.24.0b13 lib/rugged/tag.rb
rdavila-rugged-0.24.0b13 lib/rugged/tag.rb