rake 11.3.0 → 12.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rake might be problematic. Click here for more details.

Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +51 -12
  3. data/.travis.yml +2 -9
  4. data/Gemfile +1 -1
  5. data/History.rdoc +41 -29
  6. data/README.rdoc +4 -5
  7. data/Rakefile +18 -13
  8. data/appveyor.yml +6 -7
  9. data/doc/rake.1 +139 -124
  10. data/doc/rakefile.rdoc +1 -3
  11. data/exe/rake +1 -1
  12. data/lib/rake.rb +33 -33
  13. data/lib/rake/application.rb +68 -67
  14. data/lib/rake/backtrace.rb +2 -2
  15. data/lib/rake/clean.rb +4 -3
  16. data/lib/rake/cpu_counter.rb +1 -1
  17. data/lib/rake/dsl_definition.rb +1 -1
  18. data/lib/rake/ext/string.rb +21 -21
  19. data/lib/rake/file_creation_task.rb +2 -2
  20. data/lib/rake/file_list.rb +8 -10
  21. data/lib/rake/file_task.rb +2 -2
  22. data/lib/rake/file_utils.rb +7 -10
  23. data/lib/rake/file_utils_ext.rb +3 -3
  24. data/lib/rake/late_time.rb +1 -1
  25. data/lib/rake/loaders/makefile.rb +4 -4
  26. data/lib/rake/multi_task.rb +36 -0
  27. data/lib/rake/name_space.rb +0 -1
  28. data/lib/rake/packagetask.rb +10 -10
  29. data/lib/rake/phony.rb +1 -1
  30. data/lib/rake/promise.rb +10 -10
  31. data/lib/rake/rake_module.rb +1 -1
  32. data/lib/rake/rake_test_loader.rb +1 -1
  33. data/lib/rake/rule_recursion_overflow_error.rb +1 -1
  34. data/lib/rake/scope.rb +1 -1
  35. data/lib/rake/task.rb +13 -14
  36. data/lib/rake/task_arguments.rb +8 -4
  37. data/lib/rake/task_manager.rb +5 -18
  38. data/lib/rake/tasklib.rb +1 -1
  39. data/lib/rake/testtask.rb +26 -16
  40. data/lib/rake/thread_history_display.rb +3 -3
  41. data/lib/rake/thread_pool.rb +14 -14
  42. data/lib/rake/version.rb +2 -2
  43. data/lib/rake/win32.rb +8 -8
  44. data/rake.gemspec +15 -6
  45. metadata +20 -68
  46. data/doc/release_notes/README.md +0 -4
  47. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  48. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  49. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  50. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  51. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  52. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  53. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  54. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  55. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  56. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  57. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  58. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  59. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  60. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  61. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  62. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  63. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  64. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  65. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  66. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  67. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  68. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  69. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  70. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  71. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  72. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  73. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  74. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  75. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  76. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  77. data/lib/rake/contrib/compositepublisher.rb +0 -21
  78. data/lib/rake/contrib/ftptools.rb +0 -137
  79. data/lib/rake/contrib/sshpublisher.rb +0 -60
  80. data/lib/rake/ext/pathname.rb +0 -25
@@ -1,47 +0,0 @@
1
- = Rake 0.7.3 Released
2
-
3
- Rake version 0.7.3 is a minor release that includes some refactoring to better
4
- support custom Rake applications.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.7.3
9
-
10
- * Added the +init+ and +top_level+ methods to make the creation of custom Rake applications a bit easier. E.g.
11
-
12
- gem 'rake', ">= 0.7.3"
13
- require 'rake'
14
-
15
- Rake.application.init('myrake')
16
-
17
- task :default do
18
- something_interesting
19
- end
20
-
21
- Rake.application.top_level
22
-
23
- == What is Rake
24
-
25
- Rake is a build tool similar to the make program in many ways. But instead of
26
- cryptic make recipes, Rake uses standard Ruby code to declare tasks and
27
- dependencies. You have the full power of a modern scripting language built
28
- right into your build tool.
29
-
30
- == Availability
31
-
32
- The easiest way to get and install rake is via RubyGems ...
33
-
34
- gem install rake (you may need root/admin privileges)
35
-
36
- Otherwise, you can get it from the more traditional places:
37
-
38
- Home Page:: http://rake.rubyforge.org/
39
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
40
-
41
- == Thanks
42
-
43
- As usual, it was input from users that drove a alot of these changes. The
44
- following people either contributed patches, made suggestions or made
45
- otherwise helpful comments. Thanks to ...
46
-
47
- -- Jim Weirich
@@ -1,114 +0,0 @@
1
- = Rake 0.8.0/0.8.1 Released
2
-
3
- Rake version 0.8.0 is a new release of rake that includes serveral new
4
- features.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.8.0
9
-
10
- * Tasks can now receive command line parameters. See the examples
11
- below for more details.
12
-
13
- * Comments are limited to 80 columns on output, but full comments can
14
- be seen by using the -D parameter. (feature suggested by Jamis
15
- Buck).
16
-
17
- * Explicit exit(n) calls will now set the exit status to n. (patch
18
- provided by Stephen Touset).
19
-
20
- * Rake is now compatible with Ruby 1.9.
21
-
22
- Version 0.8.1 is a minor update that includes additional Ruby 1.9
23
- compatibility fixes.
24
-
25
- == What is Rake
26
-
27
- Rake is a build tool similar to the make program in many ways. But
28
- instead of cryptic make recipes, Rake uses standard Ruby code to
29
- declare tasks and dependencies. You have the full power of a modern
30
- scripting language built right into your build tool.
31
-
32
- == Availability
33
-
34
- The easiest way to get and install rake is via RubyGems ...
35
-
36
- gem install rake (you may need root/admin privileges)
37
-
38
- Otherwise, you can get it from the more traditional places:
39
-
40
- Home Page:: http://rake.rubyforge.org/
41
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
42
-
43
- == Task Argument Examples
44
-
45
- Prior to version 0.8.0, rake was only able to handle command line
46
- arguments of the form NAME=VALUE that were passed into Rake via the
47
- ENV hash. Many folks had asked for some kind of simple command line
48
- arguments, perhaps using "--" to separate regular task names from
49
- argument values on the command line. The problem is that there was no
50
- easy way to associate positional arguments on the command line with
51
- different tasks. Suppose both tasks :a and :b expect a command line
52
- argument: does the first value go with :a? What if :b is run first?
53
- Should it then get the first command line argument.
54
-
55
- Rake 0.8.0 solves this problem by explicitly passing values directly
56
- to the tasks that need them. For example, if I had a release task
57
- that required a version number, I could say:
58
-
59
- rake release[0.8.0]
60
-
61
- And the string "0.8.0" will be passed to the :release task. Multiple
62
- arguments can be passed by separating them with a comma, for example:
63
-
64
- rake name[john,doe]
65
-
66
- Just a few words of caution. The rake task name and its arguments
67
- need to be a single command line argument to rake. This generally
68
- means no spaces. If spaces are needed, then the entire rake +
69
- argument string should be quoted. Something like this:
70
-
71
- rake "name[billy bob, smith]"
72
-
73
- (Quoting rules vary between operating systems and shells, so make sure
74
- you consult the proper docs for your OS/shell).
75
-
76
- === Tasks that Expect Parameters
77
-
78
- Parameters are only given to tasks that are setup to expect them. In
79
- order to handle named parameters, the task declaration syntax for
80
- tasks has been extended slightly.
81
-
82
- For example, a task that needs a first name and last name might be
83
- declared as:
84
-
85
- task :name, :first_name, :last_name
86
-
87
- The first argument is still the name of the task (:name in this case).
88
- The next to argumements are the names of the parameters expected by
89
- :name (:first_name and :last_name in the example).
90
-
91
- To access the values of the paramters, the block defining the task
92
- behaviour can now accept a second parameter:
93
-
94
- task :name, :first_name, :last_name do |t, args|
95
- puts "First name is #{args.first_name}"
96
- puts "Last name is #{args.last_name}"
97
- end
98
-
99
- The first argument of the block "t" is always bound to the current
100
- task object. The second argument "args" is an open-struct like object
101
- that allows access to the task arguments. Extra command line
102
- arguments to a task are ignored. Missing command line arguments are
103
- given the nil value.
104
-
105
- == Thanks
106
-
107
- As usual, it was input from users that drove a alot of these changes. The
108
- following people either contributed patches, made suggestions or made
109
- otherwise helpful comments. Thanks to ...
110
-
111
- * Jamis Buck (for comment formatting suggestions)
112
- * Stephen Touset (for exit status patch).
113
-
114
- -- Jim Weirich
@@ -1,165 +0,0 @@
1
- = Rake 0.8.2 Released
2
-
3
- Rake version 0.8.2 is a new release of rake that includes a number of
4
- new features and numerous bug fixes.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.8.2
9
-
10
- * Switched from getoptlong to optparse (patches supplied by Edwin
11
- Pratomo).
12
-
13
- * The -T option will now attempt to dynamically sense the size of the
14
- terminal. The -T output will only self-truncate if the output is a
15
- tty. However, if RAKE_COLUMNS is explicitly set, it will be honored
16
- in any case. (Patch provided by Gavin Stark).
17
-
18
- * The following public methods have been added to rake task objects:
19
-
20
- * task.clear -- Clear both the prerequisites and actions of the
21
- target rake task.
22
- * task.clear_prerequisites -- Clear all the existing prerequisites
23
- from the target rake task.
24
- * task.clear_actions -- Clear all the existing actions from the
25
- target rake task.
26
- * task.reenable -- Re-enable a task, allowing its actions to be
27
- executed again if the task is invoked.
28
-
29
- * Changed RDoc test task to have no default template. This makes it
30
- easier for the tempate to pick up the template from the environment.
31
-
32
- * Default values for task arguments can easily be specified with the
33
- :with_defaults method. (Idea for default argument merging supplied
34
- by (Adam Q. Salter)
35
-
36
- === Bug Fixes in Version 0.8.2
37
-
38
- * Fixed bug in package task so that it will include the subdir
39
- directory in the package for testing. (Bug found by Adam Majer)
40
-
41
- * Fixed filename dependency order bug in test_inspect_pending and
42
- test_to_s_pending. (Bug found by Adam Majer)
43
-
44
- * Fixed check for file utils options to make them immune to the
45
- symbol/string differences. (Patch supplied by Edwin Pratomo)
46
-
47
- * Fixed bug with rules involving multiple source, where only the first
48
- dependency of a rule has any effect (Patch supplied by Emanuel
49
- Indermühle)
50
-
51
- * FileList#clone and FileList#dup have better sematics w.r.t. taint
52
- and freeze.
53
-
54
- * Changed from using Mutex to Monitor. Evidently Mutex causes thread
55
- join errors when Ruby is compiled with -disable-pthreads. (Patch
56
- supplied by Ittay Dror)
57
-
58
- * Fixed bug in makefile parser that had problems with extra spaces in
59
- file task names. (Patch supplied by Ittay Dror)
60
-
61
- == Other changes in Version 0.8.2
62
-
63
- * Added ENV var to rake's own Rakefile to prevent OS X from including
64
- extended attribute junk in the rake package tar file. (Bug found by
65
- Adam Majer)
66
-
67
- * Added a performance patch for reading large makefile dependency
68
- files. (Patch supplied by Ittay Dror)
69
-
70
- == What is Rake
71
-
72
- Rake is a build tool similar to the make program in many ways. But
73
- instead of cryptic make recipes, Rake uses standard Ruby code to
74
- declare tasks and dependencies. You have the full power of a modern
75
- scripting language built right into your build tool.
76
-
77
- == Availability
78
-
79
- The easiest way to get and install rake is via RubyGems ...
80
-
81
- gem install rake (you may need root/admin privileges)
82
-
83
- Otherwise, you can get it from the more traditional places:
84
-
85
- Home Page:: http://rake.rubyforge.org/
86
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
87
-
88
- == Task Argument Examples
89
-
90
- Prior to version 0.8.0, rake was only able to handle command line
91
- arguments of the form NAME=VALUE that were passed into Rake via the
92
- ENV hash. Many folks had asked for some kind of simple command line
93
- arguments, perhaps using "--" to separate regular task names from
94
- argument values on the command line. The problem is that there was no
95
- easy way to associate positional arguments on the command line with
96
- different tasks. Suppose both tasks :a and :b expect a command line
97
- argument: does the first value go with :a? What if :b is run first?
98
- Should it then get the first command line argument.
99
-
100
- Rake 0.8.0 solves this problem by explicitly passing values directly
101
- to the tasks that need them. For example, if I had a release task
102
- that required a version number, I could say:
103
-
104
- rake release[0.8.2]
105
-
106
- And the string "0.8.2" will be passed to the :release task. Multiple
107
- arguments can be passed by separating them with a comma, for example:
108
-
109
- rake name[john,doe]
110
-
111
- Just a few words of caution. The rake task name and its arguments
112
- need to be a single command line argument to rake. This generally
113
- means no spaces. If spaces are needed, then the entire rake +
114
- argument string should be quoted. Something like this:
115
-
116
- rake "name[billy bob, smith]"
117
-
118
- (Quoting rules vary between operating systems and shells, so make sure
119
- you consult the proper docs for your OS/shell).
120
-
121
- === Tasks that Expect Parameters
122
-
123
- Parameters are only given to tasks that are setup to expect them. In
124
- order to handle named parameters, the task declaration syntax for
125
- tasks has been extended slightly.
126
-
127
- For example, a task that needs a first name and last name might be
128
- declared as:
129
-
130
- task :name, :first_name, :last_name
131
-
132
- The first argument is still the name of the task (:name in this case).
133
- The next to argumements are the names of the parameters expected by
134
- :name (:first_name and :last_name in the example).
135
-
136
- To access the values of the paramters, the block defining the task
137
- behaviour can now accept a second parameter:
138
-
139
- task :name, :first_name, :last_name do |t, args|
140
- puts "First name is #{args.first_name}"
141
- puts "Last name is #{args.last_name}"
142
- end
143
-
144
- The first argument of the block "t" is always bound to the current
145
- task object. The second argument "args" is an open-struct like object
146
- that allows access to the task arguments. Extra command line
147
- arguments to a task are ignored. Missing command line arguments are
148
- given the nil value.
149
-
150
- == Thanks
151
-
152
- As usual, it was input from users that drove a alot of these changes. The
153
- following people either contributed patches, made suggestions or made
154
- otherwise helpful comments. Thanks to ...
155
-
156
- * Edwin Pratomo
157
- * Gavin Stark
158
- * Adam Q. Salter
159
- * Adam Majer
160
- * Emanuel Indermühle
161
- * Ittay Dror
162
- * Bheeshmar Redheendran (for spending an afternoon with me debugging
163
- windows issues)
164
-
165
- -- Jim Weirich
@@ -1,112 +0,0 @@
1
- = Rake 0.8.3 Released
2
-
3
- Rake version 0.8.3 is a bug-fix release of rake.
4
-
5
- == Changes
6
-
7
- === Bug Fixes in Version 0.8.3
8
-
9
- * Enhanced the system directory detection in windows. We now check
10
- HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch
11
- supplied by James Tucker). Rake no long aborts if it can't find the
12
- directory.
13
-
14
- * Added fix to handle ruby installations in directories with spaces in
15
- their name.
16
-
17
- == What is Rake
18
-
19
- Rake is a build tool similar to the make program in many ways. But
20
- instead of cryptic make recipes, Rake uses standard Ruby code to
21
- declare tasks and dependencies. You have the full power of a modern
22
- scripting language built right into your build tool.
23
-
24
- == Availability
25
-
26
- The easiest way to get and install rake is via RubyGems ...
27
-
28
- gem install rake (you may need root/admin privileges)
29
-
30
- Otherwise, you can get it from the more traditional places:
31
-
32
- Home Page:: http://rake.rubyforge.org/
33
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
34
-
35
- == Task Argument Examples
36
-
37
- Prior to version 0.8.0, rake was only able to handle command line
38
- arguments of the form NAME=VALUE that were passed into Rake via the
39
- ENV hash. Many folks had asked for some kind of simple command line
40
- arguments, perhaps using "--" to separate regular task names from
41
- argument values on the command line. The problem is that there was no
42
- easy way to associate positional arguments on the command line with
43
- different tasks. Suppose both tasks :a and :b expect a command line
44
- argument: does the first value go with :a? What if :b is run first?
45
- Should it then get the first command line argument.
46
-
47
- Rake 0.8.0 solves this problem by explicitly passing values directly
48
- to the tasks that need them. For example, if I had a release task
49
- that required a version number, I could say:
50
-
51
- rake release[0.8.3]
52
-
53
- And the string "0.8.3" will be passed to the :release task. Multiple
54
- arguments can be passed by separating them with a comma, for example:
55
-
56
- rake name[john,doe]
57
-
58
- Just a few words of caution. The rake task name and its arguments
59
- need to be a single command line argument to rake. This generally
60
- means no spaces. If spaces are needed, then the entire rake +
61
- argument string should be quoted. Something like this:
62
-
63
- rake "name[billy bob, smith]"
64
-
65
- (Quoting rules vary between operating systems and shells, so make sure
66
- you consult the proper docs for your OS/shell).
67
-
68
- === Tasks that Expect Parameters
69
-
70
- Parameters are only given to tasks that are setup to expect them. In
71
- order to handle named parameters, the task declaration syntax for
72
- tasks has been extended slightly.
73
-
74
- For example, a task that needs a first name and last name might be
75
- declared as:
76
-
77
- task :name, :first_name, :last_name
78
-
79
- The first argument is still the name of the task (:name in this case).
80
- The next to argumements are the names of the parameters expected by
81
- :name (:first_name and :last_name in the example).
82
-
83
- To access the values of the paramters, the block defining the task
84
- behaviour can now accept a second parameter:
85
-
86
- task :name, :first_name, :last_name do |t, args|
87
- puts "First name is #{args.first_name}"
88
- puts "Last name is #{args.last_name}"
89
- end
90
-
91
- The first argument of the block "t" is always bound to the current
92
- task object. The second argument "args" is an open-struct like object
93
- that allows access to the task arguments. Extra command line
94
- arguments to a task are ignored. Missing command line arguments are
95
- given the nil value.
96
-
97
- == Thanks
98
-
99
- As usual, it was input from users that drove a alot of these changes. The
100
- following people either contributed patches, made suggestions or made
101
- otherwise helpful comments. Thanks to ...
102
-
103
- * Edwin Pratomo
104
- * Gavin Stark
105
- * Adam Q. Salter
106
- * Adam Majer
107
- * Emanuel Indermühle
108
- * Ittay Dror
109
- * Bheeshmar Redheendran (for spending an afternoon with me debugging
110
- windows issues)
111
-
112
- -- Jim Weirich
@@ -1,147 +0,0 @@
1
- = Rake 0.8.4 Released
2
-
3
- Rake version 0.8.4 is a bug-fix release of rake.
4
-
5
- NOTE: The version of Rake that comes with Ruby 1.9 has diverged
6
- slightly from the core Rake code base. Rake 0.8.4 will work
7
- with Ruby 1.9, but is not a strict upgrade for the Rake that
8
- comes with Ruby 1.9. A (near) future release of Rake will unify
9
- those two codebases.
10
-
11
- == Letter Writing Campaign
12
-
13
- Thanks to Aaron Patterson (@tenderlove) and Eric Hodel (@drbrain) for
14
- their encouraging support in organizing a letter writing campaign to
15
- lobby for the "Warning Free" release of rake 0.8.4. A special callout
16
- goes to Jonathan D. Lord, Sr (Dr. Wingnut) whose postcard was the
17
- first to actually reach me. (see
18
- http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/
19
- for details)
20
-
21
- == Changes
22
-
23
- === New Features / Enhancements in Version 0.8.4
24
-
25
- * Case is preserved on rakefile names. (patch from James
26
- M. Lawrence/quix)
27
-
28
- * Improved Rakefile case insensitivity testing (patch from Luis
29
- Lavena).
30
-
31
- * Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
32
- APPDATA, USERPROFILE (patch from Luis Lavena)
33
-
34
- * MingGW is now recognized as a windows platform. (patch from Luis
35
- Lavena)
36
-
37
- === Bug Fixes in Version 0.8.4
38
-
39
- * Removed reference to manage_gem to fix the warning produced by the
40
- gem package task.
41
-
42
- * Fixed stray ARGV option problem that was interfering with
43
- Test::Unit::Runner. (patch from Pivotal Labs)
44
-
45
- === Infrastructure Improvements in Version 0.8.4
46
-
47
- * Numerous fixes to the windows test suite (patch from Luis Lavena).
48
-
49
- * Improved Rakefile case insensitivity testing (patch from Luis
50
- Lavena).
51
-
52
- * Better support for windows paths in the test task (patch from Simon
53
- Chiang/bahuvrihi)
54
-
55
- == What is Rake
56
-
57
- Rake is a build tool similar to the make program in many ways. But
58
- instead of cryptic make recipes, Rake uses standard Ruby code to
59
- declare tasks and dependencies. You have the full power of a modern
60
- scripting language built right into your build tool.
61
-
62
- == Availability
63
-
64
- The easiest way to get and install rake is via RubyGems ...
65
-
66
- gem install rake (you may need root/admin privileges)
67
-
68
- Otherwise, you can get it from the more traditional places:
69
-
70
- Home Page:: http://rake.rubyforge.org/
71
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
72
- GitHub:: git://github.com/jimweirich/rake.git
73
-
74
- == Task Argument Examples
75
-
76
- Prior to version 0.8.0, rake was only able to handle command line
77
- arguments of the form NAME=VALUE that were passed into Rake via the
78
- ENV hash. Many folks had asked for some kind of simple command line
79
- arguments, perhaps using "--" to separate regular task names from
80
- argument values on the command line. The problem is that there was no
81
- easy way to associate positional arguments on the command line with
82
- different tasks. Suppose both tasks :a and :b expect a command line
83
- argument: does the first value go with :a? What if :b is run first?
84
- Should it then get the first command line argument.
85
-
86
- Rake 0.8.0 solves this problem by explicitly passing values directly
87
- to the tasks that need them. For example, if I had a release task
88
- that required a version number, I could say:
89
-
90
- rake release[0.8.4]
91
-
92
- And the string "0.8.4" will be passed to the :release task. Multiple
93
- arguments can be passed by separating them with a comma, for example:
94
-
95
- rake name[john,doe]
96
-
97
- Just a few words of caution. The rake task name and its arguments
98
- need to be a single command line argument to rake. This generally
99
- means no spaces. If spaces are needed, then the entire rake +
100
- argument string should be quoted. Something like this:
101
-
102
- rake "name[billy bob, smith]"
103
-
104
- (Quoting rules vary between operating systems and shells, so make sure
105
- you consult the proper docs for your OS/shell).
106
-
107
- === Tasks that Expect Parameters
108
-
109
- Parameters are only given to tasks that are setup to expect them. In
110
- order to handle named parameters, the task declaration syntax for
111
- tasks has been extended slightly.
112
-
113
- For example, a task that needs a first name and last name might be
114
- declared as:
115
-
116
- task :name, :first_name, :last_name
117
-
118
- The first argument is still the name of the task (:name in this case).
119
- The next to argumements are the names of the parameters expected by
120
- :name (:first_name and :last_name in the example).
121
-
122
- To access the values of the paramters, the block defining the task
123
- behaviour can now accept a second parameter:
124
-
125
- task :name, :first_name, :last_name do |t, args|
126
- puts "First name is #{args.first_name}"
127
- puts "Last name is #{args.last_name}"
128
- end
129
-
130
- The first argument of the block "t" is always bound to the current
131
- task object. The second argument "args" is an open-struct like object
132
- that allows access to the task arguments. Extra command line
133
- arguments to a task are ignored. Missing command line arguments are
134
- given the nil value.
135
-
136
- == Thanks
137
-
138
- As usual, it was input from users that drove a alot of these changes. The
139
- following people either contributed patches, made suggestions or made
140
- otherwise helpful comments. Thanks to ...
141
-
142
- * James M. Lawrence/quix
143
- * Luis Lavena
144
- * Pivotal Labs
145
- * Simon Chiang/bahuvrihi
146
-
147
- -- Jim Weirich