I'm using Rails 3.1 beta with Ruby 1.9.2 and rake 0.9.2, and have a bunch of rake tasks I've written. Here is an example:
namespace :data do
desc "dump the nodes and edges for a graph"
task :dump_graph, :species_id, :needs => :environment do |t,args|
args.with_defaults(:species_id => 'Hs')
# ...
end
end
When my rails app loads these rake tasks, however, I now get the following warning repeated once for each rake task:
at /home/user/railsapp/lib/tasks/data/dump_graph.rake:3:in `block in <top (required)>'
WARNING: 'task :t, arg, :needs => [deps]' is deprecated. Please use 'task :t, [args] => [deps]' instead.
I've experimented with rearranging the arguments in several different ways, but I'm not clear on exactly what my task should look like now.
Does rake expect me to give the individual dependencies? How do I define these in a rake task if the dep is the rails environment?
A link to updated documentation would be an acceptable answer! I've Googled and Googled, but no luck.
(And yes, I realize that the format is given in the error message. But that format does not appear to be correct, based on the variations I've tried.)
Rake is a software task management and build automation tool created by Jim Weirich. It allows the user to specify tasks and describe dependencies as well as to group tasks in a namespace. It is similar in to SCons and Make.
Go to Websites & Domains and click Ruby. After gems installation you can try to run a Rake task by clicking Run rake task. In the opened dialog, you can provide some parameters and click OK - this will be equivalent to running the rake utility with the specified parameters in the command line.
You can get a list of Rake tasks available to you, which will often depend on your current directory, by typing rake --tasks . Each task has a description, and should help you find the thing you need.
I know it is sometimes hard to decipher but the error message gives you the new format:
task :t, [args] => [deps]
So for your example:
task :dump_graph, :species_id => :environment
http://www.postal-code.com/binarycode/2011/06/02/rake-needs-deprecated/
The usage which works for me is:
task :task_name, [:argument] => :environment
I guess if you had several dependencies to list, deps would need the array notation.
I've no idea why a single argument requires the array notation - running the rake task with --trace gives an error about the :argument symbol not responding to the empty? method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With