Module: Kamaze::Project::Concern::Tasks

Included in:
Kamaze::Project
Defined in:
lib/kamaze/project/concern/tasks.rb

Overview

Concern tasks

Stores tasks to enable and provides method to load them

Instance Method Summary collapse

Instance Method Details

#tasksArray<Symbol>

Get tasks

Returns:

  • (Array<Symbol>)


18
19
20
21
22
# File 'lib/kamaze/project/concern/tasks.rb', line 18

def tasks
  @tasks ||= []

  @tasks.clone.freeze
end

#tasks=(tasks) ⇒ Object

Set tasks

Parameters:

  • tasks (Array)


27
28
29
30
31
32
33
# File 'lib/kamaze/project/concern/tasks.rb', line 27

def tasks=(tasks)
  @tasks = (@tasks.to_a + tasks.to_a).map(&:to_s).map do |tn|
    { ':': '/', '-': '_' }.each { |k, v| tn = tn.tr(k.to_s, v) }

    tn
  end.map(&:to_sym).uniq
end

#tasks_load!self (protected)

Load tasks

Tasks are loaded only when Rake::DSL is defined. DSL::Definition is loaded during tasks loading.

Returns:

  • (self)

See Also:



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/kamaze/project/concern/tasks.rb', line 44

def tasks_load!
  if Kernel.const_defined?('Rake::DSL')
    ns = Pathname.new('kamaze/project')

    [ns.join('dsl/setup'),
     tasks.map { |task| ns.join("tasks/#{task}") }]
      .flatten.map(&:to_s).each { |req| require req }
  end

  self
end