Rake/rails task with attributes
Passing arguments to rake/rails tasks[is,easy]
.
Rails: Create your task in /lib/tasks/<your-name-here>.task
. You can view all available tasks with rails -T
desc "Rake with attributes"
task :test_with_attr, [:one, :two] => [:environment] do |task, args|
puts args.one
puts args.two
args.each do |k,v|
puts "#{k}: #{v}"
end
end
Invoke with: $ rails test_with_attr[123,456]
To invoke from another rake task use:
Rake::Task["test_with_attr"].invoke(123,456)
Missing arguments return nil
.
If you are using rake without rails skip :environment
task :test_with_attr, [:one, :two] do |task, args|
end