Method: DO::Tasks#task

Defined in:
lib/do/tasks.rb

#task(name, options = {}, &block) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/do/tasks.rb', line 22

def task(name, options={},  &block)
  name, deps, options = *case name
    when Hash
      in_was = name.delete(:in)
      name_and_deps = name.shift
      name.merge!(:in => in_was) if in_was
      name_and_deps.push(name)
    else [name, [], options]
  end
  tasks.push(options.merge({
    :name      => name.to_s,
    :desc      => @_desc.to_s,
    :deps      => Array(deps),
    :namespace => @_namespace.to_s,
    :block     => block,
    :in        => Array(options[:in] ? options[:in] : options[:on])
  }))
  tasks[-1]
ensure
  @_desc = nil
end