Module: Rake::DSL

Defined in:
lib/hobo/patches/rake.rb

Instance Method Summary collapse

Instance Method Details

#_old_namespaceObject



52
# File 'lib/hobo/patches/rake.rb', line 52

alias :_old_namespace :namespace

#desc(description) ⇒ Object



44
45
46
# File 'lib/hobo/patches/rake.rb', line 44

def desc description
  Hobo::Metadata.store[:desc] = description
end

#hidden(value = true) ⇒ Object



17
18
19
# File 'lib/hobo/patches/rake.rb', line 17

def hidden value = true
  Hobo::Metadata.store[:hidden] = value
end

#long_desc(description) ⇒ Object



48
49
50
# File 'lib/hobo/patches/rake.rb', line 48

def long_desc description
  Hobo::Metadata.store[:long_desc] = description
end

#namespace(name, opts = {}, &block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/hobo/patches/rake.rb', line 53

def namespace name, opts = {}, &block
  scoped_name = Rake.application.current_scope.path_with_task_name(name).to_s
  [:desc, :long_desc, :hidden, :project_only].each do |meta|
    Hobo::Metadata.add scoped_name, meta
  end

  Hobo::Metadata.reset_store

  _old_namespace(name, &block)
end

#option(*args) ⇒ Object



40
41
42
# File 'lib/hobo/patches/rake.rb', line 40

def option *args
  Hobo::Metadata.store[:opts].push args
end

#project_onlyObject



21
22
23
# File 'lib/hobo/patches/rake.rb', line 21

def project_only
  Hobo::Metadata.store[:project_only] = true
end

#replace(*args, &block) ⇒ Object



10
11
12
13
14
15
# File 'lib/hobo/patches/rake.rb', line 10

def replace *args, &block
  old = (args[0].is_a? Hash) ? args[0].keys[0] : args[0]
  Hobo::Logging.logger.debug("rake.dsl: Replacing #{old} with block")
  Rake::Task[old].clear
  task(*args, &block)
end

#task(*args, &block) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/hobo/patches/rake.rb', line 25

def task *args, &block
  name = args[0].is_a?(Hash) ? args[0].keys.first.to_s : args[0]
  scoped_name = Rake.application.current_scope.path_with_task_name(name).to_s

  [:opts, :desc, :long_desc, :hidden, :project_only].each do |meta|
    Hobo::Metadata.add scoped_name, meta
  end

  Hobo::Metadata.reset_store

  Hobo::Logging.logger.debug("Added metadata to #{scoped_name} -- #{Hobo::Metadata.[scoped_name]}")

  task = Rake::Task.define_task(*args, &block)
end