class Caramelize::ContentTransferer

Constants

DEFAULT_GOLLUM_HOME_TITLE

Attributes

input_wiki[R]
options[R]

Public Class Methods

new(input_wiki, options) click to toggle source
# File lib/caramelize/content_transferer.rb, line 17
def initialize(input_wiki, options)
  @input_wiki = input_wiki
  @options = options

  options[:default_author] = options.fetch(:default_author, "Caramelize")
  options[:markup] = target_markup
end

Public Instance Methods

execute() click to toggle source
# File lib/caramelize/content_transferer.rb, line 25
def execute
  input_wiki.read_authors

  commit_history

  if verbose?
    puts "From markup: #{input_wiki.markup.to_s}"
    puts "To markup: #{target_markup.to_s}"
    puts "Convert latest revisions:"
  end

  migrate_markup_of_latest_revisions

  puts 'Create Namespace Overview' if verbose?
  create_overview_page_of_namespaces if options[:create_namespace_overview]

  rename_home_page
end

Private Instance Methods

commit_history() click to toggle source
# File lib/caramelize/content_transferer.rb, line 101
def commit_history
  output_wiki.commit_history(revisions, options) do |page, index|
    if verbose?
      puts "(#{index + 1}/#{revisions_count}) #{page.time} #{page.title}"
    else
      commit_history_progress_bar.increment
    end
  end
end
commit_history_progress_bar() click to toggle source
# File lib/caramelize/content_transferer.rb, line 89
def commit_history_progress_bar
  @commit_history_progress_bar ||=
    ProgressBar.create(title: "Revisions",
                       total: revisions_count)
end
create_overview_page_of_namespaces() click to toggle source
# File lib/caramelize/content_transferer.rb, line 79
def create_overview_page_of_namespaces
  output_wiki.commit_namespace_overview(input_wiki.namespaces)
end
filter_processor() click to toggle source
# File lib/caramelize/content_transferer.rb, line 63
def filter_processor
  @filter_processor ||= FilterProcessor.new(input_wiki)
end
latest_revisions_count() click to toggle source
# File lib/caramelize/content_transferer.rb, line 75
def latest_revisions_count
  input_wiki.latest_revisions.count
end
migrate_markup_of_latest_revisions() click to toggle source
# File lib/caramelize/content_transferer.rb, line 95
def migrate_markup_of_latest_revisions
  input_wiki.latest_revisions.each do |revision|
    migrate_markup_of_revision(revision)
  end
end
migrate_markup_of_revision(revision) click to toggle source
# File lib/caramelize/content_transferer.rb, line 111
def migrate_markup_of_revision(revision)
  if verbose?
    puts "Filter source: #{revision.title} #{revision.time}"
  else
    migrate_markup_progress_bar.increment
  end

  body_new = filter_processor.run(revision.body)

  unless body_new == revision.body
    revision.body = body_new
    revision.author_name = 'Caramelize'
    revision.time = Time.now
    revision.author = nil
    revision.message = "Markup of '#{revision.title}' converted to #{target_markup}"

    # commit as latest page revision
    output_wiki.commit_revision(revision, options[:markup])
  end
end
migrate_markup_progress_bar() click to toggle source
# File lib/caramelize/content_transferer.rb, line 83
def migrate_markup_progress_bar
  @migrate_markup_progress_bar ||=
    ProgressBar.create(title: "Markup filters",
                       total: latest_revisions_count)
end
needs_conversion_to_target_markup?() click to toggle source
# File lib/caramelize/content_transferer.rb, line 51
def needs_conversion_to_target_markup?
  output_wiki.supported_markup.index(input_wiki.markup)
end
output_wiki() click to toggle source
# File lib/caramelize/content_transferer.rb, line 59
def output_wiki
  @output_wiki ||= OutputWiki::Gollum.new(options[:target])
end
rename_home_page() click to toggle source
# File lib/caramelize/content_transferer.rb, line 132
def rename_home_page
  output_wiki.rename_page(options[:home_page_title], DEFAULT_GOLLUM_HOME_TITLE)
end
revisions() click to toggle source
# File lib/caramelize/content_transferer.rb, line 55
def revisions
  @revisions ||= input_wiki.read_pages
end
revisions_count() click to toggle source
# File lib/caramelize/content_transferer.rb, line 71
def revisions_count
  revisions.count
end
target_markup() click to toggle source
# File lib/caramelize/content_transferer.rb, line 46
def target_markup
  @target_markup ||=
    needs_conversion_to_target_markup? ? input_wiki.markup : :markdown
end
verbose?() click to toggle source
# File lib/caramelize/content_transferer.rb, line 67
def verbose?
  options[:verbose]
end