module Kamaze::Project::Concern::Tasks
Concern
tasks
Stores tasks to enable and provides method to load them.
Tasks
are deignated by a string, preprocessing is applied on this strings before each “task“ is required. Task prefixd by a “@“ character are required without preprocessing, except first char removal.
Public Instance Methods
tasks()
click to toggle source
Get tasks
@return [Array<Symbol>]
# File lib/kamaze/project/concern/tasks.rb, line 22 def tasks @tasks ||= [] @tasks.clone.freeze end
tasks=(tasks)
click to toggle source
Set tasks
@param [Array] tasks @return [Array<String>]
# File lib/kamaze/project/concern/tasks.rb, line 32 def tasks=(tasks) @tasks = (@tasks.to_a + tasks.to_a).map(&:to_s).map do |tn| if tn[0] != '@' { ':': '/', '-': '_' }.each do |k, v| tn = tn.tr(k.to_s, v) end end tn.to_s end.map(&:to_sym).uniq end
Protected Instance Methods
load_task!(task)
click to toggle source
Load task by given name
@param [String] task @return [String]
# File lib/kamaze/project/concern/tasks.rb, line 67 def load_task!(task) req = task[0] != '@' ? tasks_ns.join("tasks/#{task}") : task[1..-1] require req req end
tasks_load!()
click to toggle source
Load tasks
Tasks
are loaded only when “Rake::DSL“ is defined. “DSL::Definition“ is loaded during tasks loading.
@see Kamaze::Project::DSL::Definition
@return [self]
# File lib/kamaze/project/concern/tasks.rb, line 53 def tasks_load! return self unless Kernel.const_defined?('Rake::DSL') require tasks_ns.join('dsl/setup').to_s tasks.map { |task| load_task!(task) } self end
tasks_ns()
click to toggle source
Get namespace for default tasks
@return [Pathname]
# File lib/kamaze/project/concern/tasks.rb, line 78 def tasks_ns Pathname.new('kamaze/project') end