lib/reap/task/rdoc.rb in reap-5.0.0 vs lib/reap/task/rdoc.rb in reap-5.10.10

- old
+ new

@@ -1,134 +1,82 @@ require 'reap/task' -# ___ _ _____ _ -# | _ \__| |___ __ |_ _|_ _ __| |__ -# | / _` / _ \/ _| | |/ _` (_-< / / -# |_|_\__,_\___/\__| |_|\__,_/__/_\_\ # - -# = RDoc Task +# RDoc Task # -# This task generates RDoc API documentation trom source -# comments. -# -# rdoc: -# dir Directory to store documentation [doc]. -# main File to use as main page of RDocs. -# title Project title to use in RDocs. -# template Which RDoc template to use. -# include Files to include in RDocs. -# exclude Files to exclude from those. -# options Pass-thru extra options to RDoc command. -# - class Reap::RDoc < Reap::Task - MUST_EXCLUDE = [ 'InstalledFiles', 'CVS/**/*', '_darcs/**/*' ] + def task_desc + "Generate RDocs (in #{dir})." + end - task_desc "Generate RDoc API documentation." + attr_accessor :dir, :main, :title, :template, + :include, :exclude, :options - task_help %{ + def init + @dir ||= 'doc' + @main ||= 'README' + @title ||= master["title"] + @template ||= 'html' # 'jamis' + @include ||= [ 'A-Z*', 'lib/**/*', 'ext/**/*' ] + @exclude ||= [ 'demo/**/*', 'example/**/*', 'sample/**/*' ] + @options ||= ['--merge', '--all'] + end - Generate RDoc doumentation. - - dir Directory to store documentation [doc]. - main File to use as main page of RDocs. - title Project title to use in RDocs. - template Which RDoc template to use. - include Files to include in RDocs. - exclude Files to exclude from those. - options Pass-thru extra options to RDoc command. - - } - - task_attr :doc - def run + must_exclude = [ 'InstalledFiles', 'CVS/**/*' ] - # setup - - doc.dir ||= 'doc' - doc.main ||= 'README' - doc.title ||= master.title - doc.template ||= 'html' # 'jamis' - doc.include ||= [ 'A-Z*', 'lib/**/*', 'ext/**/*', doc.main ] - doc.exclude ||= [ 'demo/**/*', 'example/**/*', 'sample/**/*' ] - doc.options ||= ['--merge', '--all'] - - doc.include = [ doc.include ].flatten - doc.exclude = [ doc.exclude ].flatten - doc.options = [ doc.options ].flatten - - # document - - if !File.exists?(doc.main) or File.directory?(doc.main) - warn "WARNING! Specified RDoc Main file #{doc.main} not found." - doc.main = nil + 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(doc.dir) + rdoc_dir = File.expand_path(@dir) - if FileTest.directory?(doc.dir) - q = "Directory '#{doc.dir}' already exists. Clobber?" - #until inp = $stdin.gets[0,1] ; sleep 1 ; end ; puts - inp = ask( q, 'yN' ) - case inp.downcase - when 'y', 'yes', 'okay' - tell "Removing old directory '#{rdoc_dir}'..." - FileUtils.rm_r(doc.dir) unless $PRETEND + 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) unless $PRETEND else - tell "Reap rdoc task canceled." + puts "Reap rdoc task canceled." return nil end end rdoc_target = "#{rdoc_dir}/index.html" exc = [] - (doc.exclude + MUST_EXCLUDE).each{ |e| + (@exclude + must_exclude).each{ |e| exc << e exc |= Dir.glob(e+'/**/*') } inc = Dir.glob('[A-Z]*') - doc.include.each{ |i| inc |= Dir.glob(i) } + @include.each{ |i| inc |= Dir.glob(i) } inc -= exc inc = inc.select{ |f| File.file?(f) } rdoc_files = inc rdoc_files = '"' << rdoc_files.join('" "') << '"' # build options string build = [] - build += doc.options - build << "--main '#{doc.main}'" if doc.main - build << "--title '#{doc.title}'" if doc.title - build << "-T '#{doc.template}'" if doc.template + build += @options + build << "--main '#{@main}'" if @main + build << "--title '#{@title}'" if @title + build << "-T '#{@template}'" if @template rdoc_opts = build.join(' ') - #-- - # SHELL OUT! Can RDoc be called from code? - #++ - # do it! - tell "Reap is shelling work out to RDoc..." + puts "Reap is shelling work out to RDoc..." sh %{rdoc -o #{rdoc_dir} #{rdoc_opts} #{rdoc_files}} end end - - -# Rake interface. - -if defined?(Rake) - - #require 'reap/rake/adapter' - - module Rake - ReapRDoc = ::Reap::RakeAdapter( ::Reap::RDoc ) - end - -end -