Friday, February 5, 2010

slurper turns 0.4.0 and slurper.vim turns 0.3.0

I'm excited to announce new releases of slurper and slurper.vim with a big feature update and a number of changes to take note of. Support is now included for generating and slurping chores, features, releases, and bugs. With slurper turning the big 0.4.0 and adding support for multiple story types we decided it was time for a refactor. You'll notice that now the story format only calls for a == at the beginning of each story rather than at the beginning and the end. If you are using slurper.vim to generate your story templates this shouldn't be a big impact as it is updated to match with the story templates it generates.

The story_defaults.yml file has been renamed to slurper_config.yml but its purpose and contents haven't changed. When slurper was originally written as a ruby script it served a different purpose than it does now so we wanted to rename it more appropriately. It still sits in your working directory for each project just like it always has.

We made the jump to version 3 of the Pivotal Tracker api. This along with the refactoring we did seems to have fixed the occasional error a few people were seeing when slurping in very large numbers of stories at once. Wes and I had some fun putting slurper and Pivotal Tracker's api through some fairly high load testing to the tune of thousands of stories and it held up really well without any major hiccups.

One of the coolest features for this release is that we added output in the terminal of your stories being slurped in similar to running your Rspec or Cucumber test suites. It's nice to see everything going across the wire and if you have clients in with you it provides them feedback with positive visual feedback on all the work that was just done to write the stories. Included is proper error handling and notifications. If there is an issue with any of your stories slurper now lets you know which one it was with either the story name if has it or the story number if the issue is with the story's name.

Finally with the keymap updates for the new story types in slurper.vim are as follows:

CTRL-h generates a Chore

CTRL-j generates a Feature

CTRL-k generates a Release

CTRL-l generates a Bug

There is no backwards compatibility for the old story formats so if you have stories in progress that are not in Pivotal Tracker yet wait until you've slurped them in before you update to the latest versions. You will want 0.3.0 of both slurper and slurper.vim moving forward.

Links:

slurper http://github.com/hashrocket/slurper

slurper.vim http://github.com/alowe/vim-slurper and http://www.vim.org/scripts/script.php?script_id=2890

Pivotal Tracker http://www.pivotaltracker.com

Tuesday, December 29, 2009

VIM Destroys All Other Rails Editors

Updated on February 06, 2010 to account for updates in pathogen.vim 1.2

Now that I have your attention, I've come across quite a few blog and forum posts from people looking for "the best" text editor or IDE to use for Ruby on Rails development. I was fortunate enough to meet Tim Pope soon after I got interested in Rails and was subsequently introduced to the awesomeness that Vim is capable of. It took some ramp up time to get comfortable with modal editing but now I find myself frustrated when I don't have all the power that comes from Vim's modal mindset.

Flame War Disclaimer

What you use to edit code is any other tool and it comes down to personal preference. Personally I LOVE Vim. There are hundred different ways you could set up Vim. This is the setup that's worked best for me. Hope you enjoy it as well.

First things first

Install MacVim or Gvim (For Debian based distros install with apt-get). I do frequently use terminal Vim or Vi but I like having both available. If you're on Windows you probably want to spin up a Linux box or a VM. Ruby on Rails development on Windows is going to painful.

Let's Get Plugged In

Download pathogen.vim it makes managing Vim plugins a lot simpler. Create a ~/.vim/autoload/ directory and copy pathogen.vim into it.
$ mkdir ~/.vim
$ mkdir ~/.vim/autoload
$ cp ~/Downloads/pathogen.vim ~/.vim/autoload/
Next you need to create and edit your .vimrc file so that pathogen gets loaded in the correct order.
$ mvim ~/.vimrc
Content:
call pathogen#runtime_append_all_bundles()

set tabstop=2
set smarttab
set shiftwidth=2
set autoindent
set expandtab
Create a .gvimrc to specify colorscheme
$ mvim ~/.gvimrc
Content:
colorscheme vividchalk
I've also become fond of the molokai colorscheme. But its all personal preference.

http://www.vim.org/scripts/script.php?script_id=2340

Create a ~/.vim/bundle directory and install plugins. I prefer to clone them from github.com when I can. Some plugins still need to be downloaded from vim.org, extracted and copied to your .vimbundles directory. Either way go vote up plugins you find useful on vim.org. If you don't have git installed check out git-scm.com
$ mkdir ~/.vim/bundle
$ cd ~/.vim/bundle
Install rails.vim
$ git clone git://github.com/tpope/vim-rails.git
Install cucumber.vim
$ git clone git://github.com/tpope/vim-cucumber.git
Install vividchalk.vim
$ git clone git://github.com/tpope/vim-vividchalk.git
Install haml.vim (There are two. I use Tim Pope's.)
$ git clone git://github.com/tpope/vim-haml.git
Install endwise.vim
$ git clone git://github.com/tpope/vim-endwise.git
Install surround.vim
$ git clone git://github.com/tpope/vim-surround.git
Install unimpaired.vim
$ git clone git://github.com/tpope/vim-unimpaired.git
Install abolish.vim
$ git clone git://github.com/tpope/vim-abolish.git
Install repeat.vim
$ git clone git://github.com/tpope/vim-repeat.git
Install NERD_tree.vim
$ git clone git://github.com/scrooloose/nerdtree.git
Install NERD_commenter.vim
$ git clone git://github.com/scrooloose/nerdcommenter.git
Restart Vim and you now have a super powerful Rails editor at your fingertips. Check out each of the plugins for documentation of features.

Technorati Tags: , ,

Saturday, December 26, 2009

Story Card Faster Than The Speed Of Pivotal Tracker

Pivotal Tracker Does Some Things Really Well.....

It provides a very streamlined and convenient tool for managing story cards with clients. This is especially true when your client is not on site with you on an ongoing basis. It does a solid job of fostering collaborative ownership of project scope and allows clients to see their impact on the project in a very tangible fashion. These things are all great once there are stories in Pivotal Tracker. Sometimes getting stories into Pivotal Tracker can be a frustrating experience.

Pivotal Tracker Can Be Frustrating.....

When I found myself on the receiving end of a brain dump by a client or in a room with flaky wireless I frequently got burned by the limitation of how fast Pivotal Tracker's UI would let me create new stories or by lost stories when then internet fizzled out.

The Solution
.....

One of my fellow Rocketeers, Wes Gibbs had the idea for and wrote a ruby script called slurper that allowed us to compose stories in a plain text file and then slurp them into Pivotal Tracker through the api. After a few iterations of improvements with contributions by myself, Tim Pope and Stephen Caudill it has been released as a gem.

Install the slurper gem
$ gem install slurper
Create a story_defaults.yml file in your working directory and add your configuration information.
project_id: 1234
token: 123abc123abc123abc
requested_by: Jane Stakeholder
Create a stories.slurper file in your working directory and open in vim. Compose your stories in the slurper story format.



Save your file and slurp the stories into Pivotal Tracker.
$ slurp stories.slurper

It Gets Better
.....

slurper is great. It's much faster than working through the Pivotal UI. It adds the additional bonuses of not having to worry about losing stories to flaky internet and being able to archive your story files in a dropbox folder or Basecamp for historical purposes.

Eventually I found having to compose the stories in the slurper format still wasn't fast enough. To solve this I wrote the slurper.vim plugin.
The plugin generates story templates for you via key maps of CTRL-K and CTRL-L depending on whether or not you want to add acceptance criteria to your stories. Fill in the details for each story, wash, rinse and repeat.

There is a detailed readme available for both projects on their respective github pages with installation, configuration and usage information. They currently follow the Hashrocket Way format for writing stories.

slurper github.com/hashrocket/slurper

slurper.vim github.com/alowe/vim-slurper

Technorati Tags: , , ,