Ruby logoThese are quick notes I’m sharing with the NYC Ruby Women’s group, which I organize. One of my developer friends, Peter Harkins, recommended I share them with the world at large, so here they are.

More about Ruby and the NYC Ruby Women’s group in a bit.

SOME HELPFUL LINKS

  • rubygems.org – The official Ruby Gem repository
  • ruby-toolbox.com/ – Shows the most popular Ruby gems (how many people who’ve looked at it, how many have downloaded it, how many have forked it)
  • railsplugins.org/ – Compatibility tracking of plugins and gems (what works with various version of Ruby and Rails 3)

SOME HELPFUL RUBY COMMANDS

  • gem update --system – updates all gems on in your system
  • gem environment gemdir – displays the system directory for gems
  • gem help – basic help directory
  • gem env – shows the Ruby gem environment
  • gem list – finds gems. You can include letters afterward as wildcards.
  • gem cleanup – deletes old gem versions. Use with caution — you don’t want to unwittingly break anything that depends on an older gem
  • rake -T – Rake helpfile

So let’s get started. These instructions assume you’re running Mac OS with Ruby version 1.8.7 installed. These tips should also work for Ruby 1.8.6, but if they don’t, leave a comment — and a fix if you find one.

INSTALL THESE GEMS (or check if you have them already)
(You may need/want to add “sudo” [no quotes] in front of each of these commands to install)

gem install rubygems-update
gem install thoughtbot-shoulda
– Read Me at: http://github.com/thoughtbot/shoulda
gem install rspec-rails
gem install jeweler
- Read Me at: http://github.com/technicalpickles/jeweler

ESTABLISH VERSION CONTROL
Download Git from the official repository.

CONFIGURE YOUR LOCAL SYSTEM TO TALK TO GITHUB (once you’ve established an account at github.com)

git config --global user.name "Real Name"
git config --global user.email "youremail@foo.com"
git config --global github.user username

SET UP YOUR PUBLIC KEY
(See the help pages for Mac, Windows, or Linux if you run into trouble or need additional details.)

Check if you have a key

cat ~/.ssh/id_rsa.pub

If you do have a key:

$ ls
config id_rsa id_rsa.pub known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

If you don’t have a key, then create one:

ssh-keygen -t rsa -C "youremail@foo.com"

CREATE A GEM ON YOUR LOCAL SYSTEM USING JEWELER (I’m calling my test gem “dabeers”.)

jeweler dabeers --rspec --rdoc --create-repo

If you get a FileUtils error (this may happen if you’re running Ruby 1.8.6), try:

mate /Library/Ruby/Gems/1.8/gems/jeweler-1.4.0/
require 'FileUtils' in generator.rb (if that's the error)
jeweler dabeers --rspec --rdoc --create-repo

VERSION YOUR GEM

rake version:write

Since it’s our first rake, the version is set to 0.0.0. If you wanted something different for your initial version, write: rake version BUILD=alpha1 [or change “alpha1” a word or number without quotes]

UPDATE VERSIONS AS YOU UPDATE YOUR GEM
You’ve got three choices. They should be self-explanatory, but if they aren’t ask a question in comments.

rake version:bump:major
rake version:bump:minor
rake version:bump:patch

COMMIT TO GITHUB

rake github:release

COMMIT TO GEMCUTTER (a.k.a. committing to the official Ruby repository at rubygems.org/)

rake gemcutter:release

Thanks to the NYC Ruby Meetup for the intro to Jeweler and Gemcutter and Peter Harkins for QA of these notes.

And finally, if you’re a woman in New York developing in Ruby or interested in developing in Ruby, join a terrific group of us on the NYC Ruby Women mailing list. All levels of development experience are welcome.