Sha256: 2db1e70fd8be252e4a1ca7586efea99b9177a34242b1f5c779abed4a7bbe5f0f

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

require 'reap/task'

#
# RDoc Task
#
class Reap::RDocTask < Reap::Task

  section_name :rdoc

  attr_accessor :dir, :main, :title, :template, :include, :exclude, :options

  def init
    @dir      = section["dir"]      || 'doc'
    @main     = section["main"]     || 'README'
    @title    = section["title"]    || master["title"]
    @template = section["template"] || 'html'
    @include  = section["include"]  || ['lib/**/*']
    @exclude  = section["exclude"]  || []
    @options  = section["options"]  || []
  end

  def define
    desc "generate RDocs (in #{@dir}) *"
    task :rdoc do
      run_rdoc
    end
  end

  private

  def run_rdoc
    if !File.exists?(@main) or File.directory?(@main)
      warn "Specified RDoc Main file #{@main} not found. Ignored."
      @main = nil
    end
    rdoc_dir = File.expand_path(@dir)
    if FileTest.directory?(@dir)
      print "Directory '#{@dir}' already exists. Clobber? [y/N] "
      until inp = $stdin.gets[0,1] ; sleep 1 ; end ; puts
      if (inp || 'y').downcase == 'y'
        puts "Removing old directory '#{rdoc_dir}'..."
        #FileUtils.mkdir_p(".trash") unless FileTest.directory?(".trash")
        #trashdir = ".trash/#{File.basename(@dir)}"
        #FileUtils.rm_r(trashdir) if FileTest.exists?(trashdir)
        #FileUtils.mv(@dir, trashdir)
        FileUtils.rm_r(@dir)
      else
        puts "Reap rdoc task canceled."
        return nil
      end
    end
    rdoc_target = "#{rdoc_dir}/index.html"
    # rdoc files
    rdoc_files = FileList.new
    rdoc_files.include(*@include)
    rdoc_files.exclude(*@exclude)
    rdoc_files = '"' << rdoc_files.join('" "') << '"'
    # build options string
    build = @options.dup
    build << "--main '#{@main}'" if @main
    build << "--title '#{@title}'" if @title
    build << "-T '#{@template}'" if @template
    rdoc_opts = build.join(' ')
    # do it!
    puts "Reap is shelling work out to RDoc..."
    puts %{rdoc -o #{@dir} #{rdoc_opts}}
    sh %{rdoc -o #{rdoc_dir} #{rdoc_opts} #{rdoc_files}}
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reap-0.6.1 lib/reap/rdoc-task.rb