class Doc::Merger

Attributes

tasks[R]

Public Class Methods

new(documentor, options) click to toggle source
Calls superclass method Doc::BaseTask::new
# File lib/doc/merger.rb, line 4
def initialize(documentor, options)
  super
  @tasks = options[:tasks].uniq

  @config = {
    :title => title,
    :dir_name => dir_name,
    :tasks => tasks.map(&:config),
  }
end

Public Instance Methods

build() click to toggle source
# File lib/doc/merger.rb, line 32
def build
  $stderr.puts "Merging #{title}"

  succeded_tasks = tasks.reject(&:failed?)
  task_titles = succeded_tasks.map{ |task| task.title.gsub(',', '_') }
  task_urls = succeded_tasks.map{ |task| task_url(task) }

  cmd = Command.new('sdoc-merge', "_#{loaded_gem_version('sdoc')}_")
  cmd.add "--op=#{doc_dir}"
  cmd.add "--title=#{title}"
  cmd.add "--names=#{task_titles.join(',')}"
  cmd.add "--urls=#{task_urls.join(' ')}"
  cmd.add *succeded_tasks.map(&:doc_dir)

  cmd.run
end
progress_message() click to toggle source
# File lib/doc/merger.rb, line 19
def progress_message
  title
end
run() click to toggle source
Calls superclass method Doc::BaseTask#run
# File lib/doc/merger.rb, line 23
def run
  tasks.with_progress(progress_message).each do |task|
    Progress.note = task.dir_name
    task.run
  end
  super(failed_state_changed? || tasks.any?(&:succeeded?))
  write_failed_state if succeeded?
end
task_url(task) click to toggle source
# File lib/doc/merger.rb, line 49
def task_url(task)
  task.doc_dir.relative_path_from(doc_dir)
end