lib/yard/rake/yardoc_task.rb in yard-0.6.8 vs lib/yard/rake/yardoc_task.rb in yard-0.7.0

- old
+ new

@@ -1,68 +1,69 @@ require 'rake' require 'rake/tasklib' module YARD module Rake - + # The rake task to run {CLI::Yardoc} and generate documentation. class YardocTask < ::Rake::TaskLib # The name of the task # @return [String] the task name attr_accessor :name - + # Options to pass to {CLI::Yardoc} # @return [Hash] the options passed to the commandline utility attr_accessor :options - + # The Ruby source files (and any extra documentation files separated by '-') # to process # @return [Array<String>] a list of files attr_accessor :files - + # Runs a +Proc+ before the task # @return [Proc] a proc to call before running the task attr_accessor :before - + # Runs a +Proc+ after the task # @return [Proc] a proc to call after running the task attr_accessor :after - - # @return [Proc] an optional lambda to run against all objects being - # generated. Any object that the lambda returns false for will be - # excluded from documentation. + + # @return [Verifier, Proc] an optional {Verifier} to run against all objects + # being generated. Any object that the verifier returns false for will be + # excluded from documentation. This attribute can also be a lambda. # @see Verifier attr_accessor :verifier # Creates a new task with name +name+. - # + # # @param [String, Symbol] name the name of the rake task # @yield a block to allow any options to be modified on the task # @yieldparam [YardocTask] _self the task object to allow any parameters # to be changed. def initialize(name = :yard) @name = name @options = [] @files = [] - + yield self if block_given? - self.options += ENV['OPTS'].split(/[ ,]/) if ENV['OPTS'] + self.options += ENV['OPTS'].split(/[ ,]/) if ENV['OPTS'] self.files += ENV['FILES'].split(/[ ,]/) if ENV['FILES'] - + define end - + protected - + # Defines the rake task - # @return [void] + # @return [void] def define desc "Generate YARD Documentation" task(name) do before.call if before.is_a?(Proc) yardoc = YARD::CLI::Yardoc.new + yardoc.parse_arguments *(options + files) yardoc.options[:verifier] = verifier if verifier - yardoc.run *(options + files) + yardoc.run after.call if after.is_a?(Proc) end end end end \ No newline at end of file