Sha256: e3824660a9b250d981d3c387aa2d0a0e18ee8c0ab8a065e358d1f7bca8352524
Contents?: true
Size: 1.38 KB
Versions: 5
Compression:
Stored size: 1.38 KB
Contents
require 'rake' require 'rake/tasklib' module CabbageDoc class Task < Rake::TaskLib attr_accessor :processors, :name def self.define new.tap do |instance| yield instance if block_given? instance.validate! instance.sort! instance.define! end end def initialize @processors = [:documentation] @name = :cabbagedoc end def sort! processors.sort! { |processor| Processor::PRIORITIES.index(Processor.all[processor].priority) } end def define! namespace name do processors.each do |processor| desc "Process #{processor}" namespace :process do task processor.to_s => :environment do Processor.all[processor].new.perform end end end desc "Customize Web UI" task :customize => :environment do Customizer.new.perform end end desc "Run all processors" task name => :environment do processors.each do |name| Processor.all[name].new.perform end end end def validate! fail "Invalid 'name'" unless name.is_a?(Symbol) fail "No 'processors' configured" unless processors.any? processors.each do |processor| fail "Invalid 'processor' #{processor}" unless Processor.all.has_key?(processor) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems