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