task name in a rake task

Hi, does anyone know how one can reference the task being executed and get its name in the Rakefile. For example, I want this:

puts "You chose the task: " + taskname

task :egg do    puts " 1 egg " end

task :milk do    puts " 1 glass milk " end

Depending on the task name, I want to do load certain time consuming things before the task is executed. Any ideas?

Thanks.

Hi Santosh,

If your tasks are inside of a namespace you already know which one is being called. It would not be hard to pass the name of the task to private function outside the namespace that will do some addition work for you. Here is a simple example of what I’m talking about.

namespace :grocery do task :egg do shop_list(“egg”) puts " 1 egg " end

task :milk do
    shop_list("milk")
  puts " 1 glass milk "

end

end

private

def shop_list(item) puts “You are looking for #{item}” end

Let me know if this is not what you are looking for.

B.

Hi brian, Thanks for the reply. Here's my requirement more specifically:

We have more than 200 tasks split across 10 different .rake files, and we "load" them all from the Rakefile. However since these are too many loading them all takes time (about 10 secs) and so it hurts if we have to run rake repeatedly. So I am looking for a way to load only the required .rake file based on the namespace:taskname supplied on the rake command line.

Is there a way to do this? Thanks for any ideas.

S