Keep RSpec Current

16 November 2007

I like living on the edge with RSpec. It actually is not so bad. Every week or so I do an update on the trunk, but this is a few steps that should be automated, this is how you do it.

The steps involved are:

  1. Get the latest copy of the RSpec trunk
  2. Build the gem
  3. Install the gem
  4. Install the latest Textmate bundle

This is something perfectly suited to a shell script.

Thanks go to Ashley Moran for giving me the idea to write this blog entry on the RSpec mailing list.

So, this is how I set it up and then do it.

<ol>
<li>

Make a directory where you are going to keep your source tree for RSpec, I keep mine in “Ruby Programs”

</li>
baci:~ mikel$ mkdir ruby_programs
<li>

Then check out the RSpec trunk into this directory

</li>
baci:~ mikel$ cd ruby_programs
baci: mikel$ svn co http://rspec.rubyforge.org/svn/trunk/RSpec
<li>

Next step is to remove any other version of the RSpec.tmbundle you might have on your computer, you should check the following areas:

</li>
~/Library/Application\ Support/TextMate/Bundles/
~/Library/Application\ Support/TextMate/Pristine\ Copy/Bundles/
/Library/Application\ Support/TextMate/Bundles/
/Library/Application\ Support/TextMate/Pristine\ Copy/Bundles/
<li>

Now we have a directory tree, lets make a shell script to handle the work

</li>

In your favorite editor, type the following:

#!/usr/bin/env sh
cd ~/ruby_programs/rspec/rspec/
rake clobber
rake package
sudo gem install pkg/*.gem

As a note, prefixing a path with “~” is shorthand to insert the path to your home directory, which in my case is /Users/mikel/

<li>

You can save the above code in your home directory, call it RSpec_update.sh, you also need to make it executable by doing the following:

</li>
chmod 775 ~/RSpec_update.sh
<li>

Now run the command, watch the text fly by, enter your password where needed and you would have updated your RSpec bundle, gem and docs all in one swoop!

</li>
</ol>

Enjoy!

blogLater

Mikel

results matching ""

    No results matching ""