Like many keystroke-efficient Rails hackers, I’ve long had a line in my .bash_profile file to alias sc to script/console, along with a host of other tricks.
This shortcut was more than sufficient until recently, when I started writing Sinatra apps. The minimal framework that it is, Sinatra doesn’t provide a console script like Rails, but I found you can easily achieve the same effect by running irb -r your_sinatra_app.rb.
Not wanting my fingers to have to deviate from habits long held, I changed my sc alias into a full-blown bash function that will drop you into a Rails console, Sinatra console or just a plain irb console based on your location within the filesystem:
function sc {
if [ -x script/console ]; then
script/console
else
sinatra_rb=`egrep -l "^require.+sinatra.$" *.rb 2>/dev/null`
if [ -e $sinatra_rb ]; then
irb -r $sinatra_rb
else
irb
fi
fi
}Throw it in your .bash_profile and have fun!
Archived Comments
Ah nice solution!
I was trying to think how to do that for sinatra apps.
In fish I abstracted detection out into http://is.gd/m2uq and use it like http://is.gd/m2uB for consoles, but also as an adaptive script/server "s" http://is.gd/m2uV