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