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.
- checksums.yaml +4 -4
- data/.rubocop.yml +51 -12
- data/.travis.yml +2 -9
- data/Gemfile +1 -1
- data/History.rdoc +41 -29
- data/README.rdoc +4 -5
- data/Rakefile +18 -13
- data/appveyor.yml +6 -7
- data/doc/rake.1 +139 -124
- data/doc/rakefile.rdoc +1 -3
- data/exe/rake +1 -1
- data/lib/rake.rb +33 -33
- data/lib/rake/application.rb +68 -67
- data/lib/rake/backtrace.rb +2 -2
- data/lib/rake/clean.rb +4 -3
- data/lib/rake/cpu_counter.rb +1 -1
- data/lib/rake/dsl_definition.rb +1 -1
- data/lib/rake/ext/string.rb +21 -21
- data/lib/rake/file_creation_task.rb +2 -2
- data/lib/rake/file_list.rb +8 -10
- data/lib/rake/file_task.rb +2 -2
- data/lib/rake/file_utils.rb +7 -10
- data/lib/rake/file_utils_ext.rb +3 -3
- data/lib/rake/late_time.rb +1 -1
- data/lib/rake/loaders/makefile.rb +4 -4
- data/lib/rake/multi_task.rb +36 -0
- data/lib/rake/name_space.rb +0 -1
- data/lib/rake/packagetask.rb +10 -10
- data/lib/rake/phony.rb +1 -1
- data/lib/rake/promise.rb +10 -10
- data/lib/rake/rake_module.rb +1 -1
- data/lib/rake/rake_test_loader.rb +1 -1
- data/lib/rake/rule_recursion_overflow_error.rb +1 -1
- data/lib/rake/scope.rb +1 -1
- data/lib/rake/task.rb +13 -14
- data/lib/rake/task_arguments.rb +8 -4
- data/lib/rake/task_manager.rb +5 -18
- data/lib/rake/tasklib.rb +1 -1
- data/lib/rake/testtask.rb +26 -16
- data/lib/rake/thread_history_display.rb +3 -3
- data/lib/rake/thread_pool.rb +14 -14
- data/lib/rake/version.rb +2 -2
- data/lib/rake/win32.rb +8 -8
- data/rake.gemspec +15 -6
- metadata +20 -68
- data/doc/release_notes/README.md +0 -4
- data/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/doc/release_notes/rake-0.8.6.rdoc +0 -37
- data/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/doc/release_notes/rake-0.9.0.rdoc +0 -112
- data/doc/release_notes/rake-0.9.1.rdoc +0 -52
- data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
- data/doc/release_notes/rake-0.9.2.rdoc +0 -49
- data/doc/release_notes/rake-0.9.3.rdoc +0 -102
- data/doc/release_notes/rake-0.9.4.rdoc +0 -60
- data/doc/release_notes/rake-0.9.5.rdoc +0 -55
- data/doc/release_notes/rake-0.9.6.rdoc +0 -64
- data/doc/release_notes/rake-10.0.0.rdoc +0 -178
- data/doc/release_notes/rake-10.0.1.rdoc +0 -58
- data/doc/release_notes/rake-10.0.2.rdoc +0 -53
- data/doc/release_notes/rake-10.0.3.rdoc +0 -191
- data/doc/release_notes/rake-10.1.0.rdoc +0 -61
- data/lib/rake/contrib/compositepublisher.rb +0 -21
- data/lib/rake/contrib/ftptools.rb +0 -137
- data/lib/rake/contrib/sshpublisher.rb +0 -60
- 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
|