I would suggest taking a look at Jim Weirich 'Power Rake' presentation http://www.confreaks.com/videos/988-goruco2012-power-rake Pay close attention to the portions regarding pathmap. You could use this to dynamically include all the files you need into your rake file.
Then, I would think about using a little metaprogramming to setup the Rakefile with all the tasks you need. something like this: https://gist.github.com/3307314 Given, there will have to be some additional code work for instance and class level methods. On Thursday, August 9, 2012 2:20:00 PM UTC-4, TJ Biddle wrote: > > Hi Everyone, > > Bear with me here - I try to be descriptive right off the bat to spare > future questions :) > > I'm working on a tool that uses rake to call ruby methods. > > A brief description of my setup: > > File A: A shell file that calls rake (eg: From command line I can call > `myprogram my_method 12345` and it would call rake mymethod[12345]. > > File B: A Rake file that requires File C. It has the Rake tasks defined > and then calls something like ClassB.new.my_method(args). It also has > ClassB in it, which inherits from Class A which is in the required File > C. > > File C: A Ruby file with all of my underlying logic. This includes Class > A. > > I have this setup this way currently because we have various programs > using this - We install the original package which includes File A and > File C so that we can run the program from command line and interact > with the project we are working on at hand. We have to include File B in > the project, as it has project specific variables, and we also want the > option to override any methods in File C. > > The issue I have with this setup is that to add a new command - it's > slightly tedious, we need to add it to File A so that it can call the > rake task (Understandable and that's fine), we need to add it to File C > so that they logic is there (Also understandable - where else are we > going to put it?), But I also have to explicitly declare the Rake task > in File B - for every project - which is a pain in the ass if there's > ever a change. I tried moving the Rake tasks in File B to File C - but > then you have to keep pointing at ClassB, which inherits from ClassA in > order to make sure we can override methods if need be. > > Just wondering if anyone has any advice on how to do this more cleanly, > or if there are more efficient and proper ways to do so with Ruby and > Rake. > > Thanks! > TJ > > -- > Posted via http://www.ruby-forum.com/. > > -- You received this message because you are subscribed to the Google Groups ruby-talk-google group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at https://groups.google.com/d/forum/ruby-talk-google?hl=en
