class CabbageDoc::Task
Attributes
confirm[RW]
customize[RW]
generators[RW]
name[RW]
Public Class Methods
define() { |instance| ... }
click to toggle source
# File lib/cabbage_doc/task.rb, line 8 def self.define new.tap do |instance| yield instance if block_given? instance.validate! instance.sort! instance.define! end end
new()
click to toggle source
# File lib/cabbage_doc/task.rb, line 17 def initialize self.generators = config.generators.dup self.tags = config.tags.dup self.name = :cabbagedoc self.customize = true self.confirm = config.confirm end
Public Instance Methods
config()
click to toggle source
# File lib/cabbage_doc/task.rb, line 25 def config @_config ||= Configuration.instance end
define!()
click to toggle source
# File lib/cabbage_doc/task.rb, line 33 def define! namespace name do define_generators! define_customizer! end desc "Run all generators" task name => :environment do generators.each do |type| Generator.perform(type) end end end
sort!()
click to toggle source
# File lib/cabbage_doc/task.rb, line 29 def sort! generators.sort! { |generator| Generator::PRIORITIES.index(Generator.all[generator].priority) } end
validate!()
click to toggle source
# File lib/cabbage_doc/task.rb, line 47 def validate! fail "Invalid 'name'" unless name.is_a?(Symbol) fail "No 'generators' configured" unless generators.any? generators.each do |generator| fail "Invalid 'generator' #{generator}" unless Generator.exists?(generator) end end
Private Instance Methods
define_customizer!()
click to toggle source
# File lib/cabbage_doc/task.rb, line 84 def define_customizer! return unless customize desc "Customize Web UI" task :customize => :environment do Customizer.new.perform end end
define_generators!()
click to toggle source
# File lib/cabbage_doc/task.rb, line 58 def define_generators! generators.each do |type| desc "Generate #{type}" task type => :environment do Generator.perform(type) if confirm.call(:all) end define_generators_by_tag!(type) define_customizer! end end
define_generators_by_tag!(type)
click to toggle source
# File lib/cabbage_doc/task.rb, line 70 def define_generators_by_tag!(type) return unless Generator.supports?(type, :tags) return unless tags.size > 1 namespace type do tags.each do |tag| desc "Generate #{type} for #{tag}" task tag => :environment do Generator.perform(type, tag) if confirm.call(tag) end end end end