# @note All options not specific to any given rake task should go in the .yardopts file so they are available to both

# the below rake tasks and when invoking ‘yard` from the command line

if defined? YARD

namespace :yard do
  YARD::Rake::YardocTask.new(:doc) do |t|
    # --no-stats here as 'stats' task called after will print fuller stats
    t.options = ['--no-stats']

    t.after = Proc.new {
      Rake::Task['yard:stats'].execute
    }
  end

  # need environment so that yard templates can load ActiveRecord::Base subclasses for Entity-Relationship Diagrams
  task :doc => :environment

  desc "Shows stats for YARD Documentation including listing undocumented modules, classes, constants, and methods"
  task :stats => :environment do
    stats = YARD::CLI::Stats.new
    stats.run('--compact', '--list-undoc')
  end
end

# @todo Figure out how to just clone description from yard:doc
desc "Generate YARD documentation"
# allow calling namespace to as a task that goes to default task for namespace
task :yard => ['yard:doc']

task :default => :yard

else

puts 'YARD not defined, so yard tasks cannot be setup.'

end