lib/caramelize/gollum_output.rb in caramelize-0.0.3 vs lib/caramelize/gollum_output.rb in caramelize-0.1.0

- old
+ new

@@ -1,24 +1,28 @@ #Encoding: UTF-8 module Caramelize class GollumOutput + def supported_markup + [:markdown, :textile] + end + # Initialize a new gollum-wiki-repository at the given path. def initialize wiki_path # TODO use sanitized name as wiki-repository-title repo = Grit::Repo.init(wiki_path) unless File.exists?(wiki_path) @gollum = Gollum::Wiki.new(wiki_path) end # Commit the given page into the gollum-wiki-repository. - def commit_revision page - gollum_page = @gollum.page(page.title) + # Make sure the target markup is correct before calling this method. + def commit_revision(page, markup) message = page.message.empty? ? "Edit in page #{page.title}" : page.message - + if page.author - author = page.author + author = page.author else author = Author.new author.name = page.author_name author.email = "mail@example.com" end @@ -27,45 +31,28 @@ :name => author.name, :email => author.email, :authored_date => page.time, :committed_date => page.time } + + gollum_page = @gollum.page(page.title) if gollum_page @gollum.update_page(gollum_page, gollum_page.name, gollum_page.format, page.body, commit) else - # OPTIMIZE support not just markdown - @gollum.write_page(page.title, :markdown, page.body, commit) + @gollum.write_page(page.title, markup, page.body, commit) end end # Commit all revisions of the given history into this gollum-wiki-repository. - def commit_history revisions + def commit_history(revisions, options={}) + options[:markup] = :markdown if options[:markup].nil? # target markup revisions.each_with_index do |page, index| - puts "(#{index+1}/#{revisions.count}) #{page.time} #{page.title}" - - gollum_page = @gollum.page(page.title) - message = page.message.empty? ? "Edit in page #{page.title}" : page.message - - if page.author - author = page.author - else - author = Author.new - author.name = page.author_name - author.email = "mail@example.com" + if options[:verbosity] == :normal || options[:verbosity] == :verbose + puts "(#{index+1}/#{revisions.count}) #{page.time} #{page.title}" end - commit = {:message => message, - :name => author.name, - :email => author.email, - :authored_date => page.time, - :committed_date => page.time - } - if gollum_page - @gollum.update_page(gollum_page, gollum_page.name, gollum_page.format, page.body, commit) - else - # OPTIMIZE support not just markdown - @gollum.write_page(page.title, :markdown, page.body, commit) - end + commit_revision(page, options[:markup]) end end + end end \ No newline at end of file