I just started working on an old Rails project after having neglected it for 15 months. Most of the view files still had the good old .rhtml extension. I was too lazy to rename these files by hand, both on my file system and in the git repository. I used the following Bash commands to do the job:
First, I renamed all the partials to the .erb extension. Note: I am not using .html.erb, as some of these partials are used in js-formatted responses as well:
for i in `find app/views/**/_*.rhtml`; do \ git mv $i `echo $i | sed s/\\.rhtml$/.erb/`; \ done
The remaining files could now be renamed to .html.erb with a similar command:
for i in `find app/views/**/*.rhtml`; do \ git mv $i `echo $i | sed s/\\.rhtml$/.html.erb/`; \ done
Note that this technique works with Subversion as well: just substitute git with svn in the command above. A regular rename is possible as well by leaving out git altogether!
Now my file names are Rails-compliant again, I can start refactoring all the code that is not up to current Rails standards anymore. Ah, the virtues of developing with a rapidly evolving framework…



February 11th, 2009 at 7:30 am
[...] celebrate, I figured I’d share the Bash script in question. My solution is based on the code found here. Tweaking it for SVN, creating in my particular find and replace, and adding the global flag, I [...]