lib/caramelize/content_transferer.rb in caramelize-0.1.1 vs lib/caramelize/content_transferer.rb in caramelize-0.1.2

- old
+ new

@@ -1,9 +1,10 @@ #Encoding: UTF-8 require 'gollum' require 'grit' +require 'ruby-progressbar' module Caramelize autoload :Wiki, 'caramelize/wiki/wiki' autoload :WikkaWiki, 'caramelize/wiki/wikkawiki' autoload :RedmineWiki, 'caramelize/wiki/redmine_wiki' @@ -17,34 +18,45 @@ # Execute the content migration def self.execute(original_wiki, options={}) options[:markup] = :markdown if !options[:markup] options[:default_author] = "Caramelize" if !options[:default_author] - + # read page revisions from wiki # store page revisions - original_wiki.read_authors @revisions = original_wiki.read_pages - # initiate new wiki output_wiki = GollumOutput.new('wiki.git') # TODO make wiki_path an option + # setup progressbar + progress_revisions = ProgressBar.create(:title => "Revisions", :total => @revisions.count, :format => '%a %B %p%% %t') + # TODO ask if we should replace existing paths # commit page revisions to new wiki - output_wiki.commit_history @revisions, options - + output_wiki.commit_history(@revisions, options) do |page, index| + if options[:verbosity] == :verbose + puts "(#{index+1}/#{@revisions.count}) #{page.time} #{page.title}" + else + progress_revisions.increment + end + end + # if wiki needs to convert syntax, do so puts "From markup: " + original_wiki.markup.to_s if options[:verbosity] == :verbose puts "To markup: " + options[:markup].to_s if options[:verbosity] == :verbose if original_wiki.convert_markup? options[:markup] # is wiki in target markup + #setup progress for markup conversion + progress_markup = ProgressBar.create(:title => "Markup", :total => original_wiki.latest_revisions.count, :format => '%a %B %p%% %t') + puts "Latest revisions:" if options[:verbosity] == :verbose # take each latest revision for rev in original_wiki.latest_revisions puts "Updated syntax: #{rev.title} #{rev.time}" if options[:verbosity] == :verbose + progress_markup.increment # parse markup & convert to new syntax if options[:markup] == :markdown body_new = original_wiki.to_markdown rev.body else @@ -58,10 +70,10 @@ rev.author = nil # commit as latest page revision output_wiki.commit_revision rev, options[:markup] end - end + end end end # end execute end end \ No newline at end of file