self.parse_tag_data

in lib/grit/tag.rb [47:73]


    def self.parse_tag_data(data)
      return unless data =~ /^object/
      parsed = {}
      lines  = data.split("\n")
      parsed[:object] = lines.shift.sub(/^object /, '')
      parsed[:type] = lines.shift.sub(/^type /, '')
      parsed[:tag] = lines.shift.sub(/^tag /, '')
      author_line = lines.shift
      parsed[:tagger], parsed[:tag_date] = Commit.actor(author_line)
      if !parsed[:tagger] || !parsed[:tagger].name
        parsed[:tag_date] ||= Time.utc(1970)
        parsed[:tagger]     = Actor.from_string(author_line.sub(/^tagger /, ''))
      end
      lines.shift 
      parsed[:message] = []
      while lines.first && lines.first !~ /-----BEGIN PGP SIGNATURE-----/
        parsed[:message] << lines.shift
      end
      parsed[:message] = parsed[:message] * "\n"
      parsed[:pgp] = []
      while lines.first
        parsed[:pgp] << lines.shift
      end
      parsed[:pgp] = parsed[:pgp] * "\n"
      parsed
    end