Class Grit::GitRuby::Tag
In: lib/grit/git-ruby/git_object.rb
lib/grit/git-ruby/object.rb
Parent: GitObject

Methods

from_raw   from_raw   new   new   raw_content   raw_content   type   type  

Attributes

message  [RW] 
message  [RW] 
object  [RW] 
object  [RW] 
tag  [RW] 
tag  [RW] 
tagger  [RW] 
tagger  [RW] 
type  [RW] 
type  [RW] 

Public Class methods

[Source]

# File lib/grit/git-ruby/git_object.rb, line 295
    def self.from_raw(rawobject, repository=nil)
      
      headers, message = rawobject.content.split(/\n\n/, 2)
      headers = headers.split(/\n/).map { |header| header.split(' ', 2) }
      
      object = ''
      type = ''
      tag = ''
      tagger = ''
      
      headers.each do |key, value|
        case key
        when "object"
          object = value
        when "type"
          if !["blob", "tree", "commit", "tag"].include?(value)
            raise RuntimeError, "invalid type in tag"
          end
          type = value.to_sym
        when "tag"
          tag = value
        when "tagger"
          tagger = UserInfo.new(value)
        else
          warn "unknown header '%s' in tag" % \
            [key, rawobject.sha1.unpack("H*")[0]]
        end
      end

      if not object && type && tag && tagger
        raise RuntimeError, "incomplete raw tag object"
      end
      new(object, type, tag, tagger, message, repository)
    end

[Source]

# File lib/grit/git-ruby/object.rb, line 279
    def self.from_raw(rawobject, repository=nil)
      headers, message = rawobject.content.split(/\n\n/, 2)
      headers = headers.split(/\n/).map { |header| header.split(/ /, 2) }
      headers.each do |key, value|
        case key
        when "object"
          object = value
        when "type"
          if !["blob", "tree", "commit", "tag"].include?(value)
            raise RuntimeError, "invalid type in tag"
          end
          type = value.to_sym
        when "tag"
          tag = value
        when "tagger"
          tagger = UserInfo.new(value)
        else
          warn "unknown header '%s' in tag" % \
            [key, rawobject.sha1.unpack("H*")[0]]
        end
        if not object && type && tag && tagger
          raise RuntimeError, "incomplete raw tag object"
        end
      end
      new(object, type, tag, tagger, repository)
    end

[Source]

# File lib/grit/git-ruby/object.rb, line 306
    def initialize(object, type, tag, tagger, repository=nil)
      @object = object
      @type = type
      @tag = tag
      @tagger = tagger
      @repository = repository
    end

[Source]

# File lib/grit/git-ruby/git_object.rb, line 330
    def initialize(object, type, tag, tagger, message, repository=nil)
      @object = object
      @type = type
      @tag = tag
      @tagger = tagger
      @repository = repository
      @message = message
    end

Public Instance methods

[Source]

# File lib/grit/git-ruby/git_object.rb, line 339
    def raw_content
      "object %s\ntype %s\ntag %s\ntagger %s\n\n" % \
        [@object, @type, @tag, @tagger] + @message
    end

[Source]

# File lib/grit/git-ruby/object.rb, line 314
    def raw_content
      "object %s\ntype %s\ntag %s\ntagger %s\n\n" % \
        [@object, @type, @tag, @tagger] + @message
    end

[Source]

# File lib/grit/git-ruby/git_object.rb, line 344
    def type
      :tag
    end

[Source]

# File lib/grit/git-ruby/object.rb, line 319
    def type
      :tag
    end

[Validate]