Class: CabbageDoc::Task

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/cabbage_doc/task.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTask

Returns a new instance of Task.



17
18
19
20
21
22
# 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
end

Instance Attribute Details

#customizeObject

Returns the value of attribute customize.



6
7
8
# File 'lib/cabbage_doc/task.rb', line 6

def customize
  @customize
end

#generatorsObject

Returns the value of attribute generators.



6
7
8
# File 'lib/cabbage_doc/task.rb', line 6

def generators
  @generators
end

#nameObject

Returns the value of attribute name.



6
7
8
# File 'lib/cabbage_doc/task.rb', line 6

def name
  @name
end

#tagsObject

Returns the value of attribute tags.



6
7
8
# File 'lib/cabbage_doc/task.rb', line 6

def tags
  @tags
end

Class Method Details

.defineObject



8
9
10
11
12
13
14
15
# 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

Instance Method Details

#configObject



24
25
26
# File 'lib/cabbage_doc/task.rb', line 24

def config
  @_config ||= Configuration.instance
end

#define!Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/cabbage_doc/task.rb', line 32

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!Object



28
29
30
# File 'lib/cabbage_doc/task.rb', line 28

def sort!
  generators.sort! { |generator| Generator::PRIORITIES.index(Generator.all[generator].priority) }
end

#validate!Object



46
47
48
49
50
51
52
53
# File 'lib/cabbage_doc/task.rb', line 46

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