module Rake::DSL

  1. lib/rake/dsl_definition.rb
Parent: Rake

Included modules

  1. FileUtilsExt

Private Instance methods

task (*args, &block)

Declare a basic task.


task :clobber => [:clean] do
  rm_rf "html"
[show source]
    # File lib/rake/dsl_definition.rb, line 24
24:     def task(*args, &block)
25:       Rake::Task.define_task(*args, &block)
26:     end
file (*args, &block)

Declare a file task.


 file "config.cfg" => ["config.template"] do
   open("config.cfg", "w") do |outfile|
     open("config.template") do |infile|
       while line = infile.gets
         outfile.puts line
[show source]
    # File lib/rake/dsl_definition.rb, line 42
42:     def file(*args, &block)
43:       Rake::FileTask.define_task(*args, &block)
44:     end
file_create (args, &block)

Declare a file creation task. (Mainly used for the directory command).

[show source]
    # File lib/rake/dsl_definition.rb, line 48
48:     def file_create(args, &block)
49:       Rake::FileCreationTask.define_task(args, &block)
50:     end
directory (dir)

Declare a set of files tasks to create the given directories on demand.


directory "testdata/doc"
[show source]
    # File lib/rake/dsl_definition.rb, line 58
58:     def directory(dir)
59:       Rake.each_dir_parent(dir) do |d|
60:         file_create d do |t|
61:           mkdir_p if ! File.exist?(
62:         end
63:       end
64:     end
multitask (args, &block)

Declare a task that performs its prerequisites in parallel. Multitasks does not guarantee that its prerequisites will execute in any given order (which is obvious when you think about it)


multitask :deploy => [:deploy_gem, :deploy_rdoc]
[show source]
    # File lib/rake/dsl_definition.rb, line 74
74:     def multitask(args, &block)
75:       Rake::MultiTask.define_task(args, &block)
76:     end
namespace (name=nil, &block)

Create a new rake namespace and use it for evaluating the given block. Returns a NameSpace object that can be used to lookup tasks defined in the namespace.


ns = namespace "nested" do
  task :run
task_run = ns[:run] # find :run in the given namespace.
[show source]
    # File lib/rake/dsl_definition.rb, line 89
89:     def namespace(name=nil, &block)
90:       name = name.to_s if name.kind_of?(Symbol)
91:       name = name.to_str if name.respond_to?(:to_str)
92:       unless name.kind_of?(String) || name.nil?
93:         raise ArgumentError, "Expected a String or Symbol for a namespace name"
94:       end
95:       Rake.application.in_namespace(name, &block)
96:     end
rule (*args, &block)

Declare a rule for auto-tasks.


rule '.o' => '.c' do |t|
  sh %{cc -o #{} #{t.source}}
[show source]
     # File lib/rake/dsl_definition.rb, line 105
105:     def rule(*args, &block)
106:       Rake::Task.create_rule(*args, &block)
107:     end
desc (description)

Describe the next rake task.


desc "Run the Unit Tests"
task :test => [:build]
[show source]
     # File lib/rake/dsl_definition.rb, line 117
117:     def desc(description)
118:       Rake.application.last_description = description
119:     end
import (*fns)

Import the partial Rakefiles fn. Imported files are loaded after the current file is completely loaded. This allows the import statement to appear anywhere in the importing file, and yet allowing the imported files to depend on objects defined in the importing file.

A common use of the import statement is to include files containing dependency declarations.

See also the —rakelibdir command line option.


import ".depend", "my_rules"
[show source]
     # File lib/rake/dsl_definition.rb, line 135
135:     def import(*fns)
136:       fns.each do |fn|
137:         Rake.application.add_import(fn)
138:       end
139:     end