From: Joel VanderWerf Date: 2008-04-04T06:27:12+09:00 Subject: Re: Rake task help with DRYness Alex Wayne wrote: > I'm somewhat new to writing my own rake tasks. I have a pair of tasks > that convert some stuff from one format to another. > > rake my_ns:to_a > rake my_ns:to_b > > And everything works just fine. The problem is that the implementation > the code is basically duplicated. The process is the same, the only > real difference is that old_format and new_format local variables are > swapped in the second conversion task. I want to make this much DRYer > by refactoring the common code out. > > Now, if this was a ruby class, I would simply create a private method > called convert_to(format), or something similar. Then the format > conversion happens in this method, based on the argument. > > How does one accomplish this with rake tasks? Basically I want to pass > arguments to a rake task, or method of some sort, and use the result. A > simple task in general programming, but I am not sure how to make this > work in the context of rake. > > Thanks for the help. Not sure I understand, but why not just do what you said: define a method that handles the common work? task :to_a do |name| convert(name) end task :to_b do |name| convert(name) end def convert name puts "converting #{name}" end -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407