def parse
      @changelog.scan(@version_header_exp) do |match|
        version_content = $~.post_match
        changelog_scanner = StringScanner.new(version_content)
        changelog_scanner.scan_until(@version_header_exp)
        @changelog_hash[match[@match_group]] = (changelog_scanner.pre_match || version_content).gsub(/(\A\n+|\n+\z)/, '')
      end
      @changelog_hash
    end
def parse
      @changelog.scan(@version_header_exp) do |match|
        version_content = $~.post_match
        changelog_scanner = StringScanner.new(version_content)
        changelog_scanner.scan_until(@version_header_exp)
        @changelog_hash[match[@match_group]] = (changelog_scanner.pre_match || version_content).gsub(/(\A\n+|\n+\z)/, '')
      end
      @changelog_hash
    end
Create a new changelog parser

 Options:
 * +changelog+:: Changelog content as a +String+.
 * +version_header_exp+ (optional):: regexp to match the starting line of version.
   Defaults to /^#{0,3} ?([\w\d\.-]+\.[\w\d\.-]+[a-zA-Z0-9])(?: \/ (\w+ \d{1,2}(?:st|nd|rd|th)?,\s\d{4}|\d{4}-\d{2}-\d{2}|\w+))?\n?[=-]*/
   See http://tech-angels.github.com/vandamme/#changelogs-convention
 * +format+ (optional):: One of "raw", "markdown", "rdoc"


 call-seq:
   parse => aHash

 Parse changelog file, filling +@changelog_hash+ with
 versions as keys, and version changelog as content.