Permalink
Browse files

Modified README

  • Loading branch information...
1 parent 535e9ef commit a727008eeb00ea2761a0e513191ffb0e0ae614a7 @soveran soveran committed Jun 3, 2009
Showing with 28 additions and 22 deletions.
  1. +28 −22 README.markdown
View
@@ -1,41 +1,49 @@
Joe
===
-This is a collection of Thor tasks to deal with packaging a gem and publishing it to RubyForge. Take a look at the source code – it's very simple.
+Releasing gems to RubyForge has always been a pain. There's Hoe you say? Yes, but Hoe is a pain disguised as a virus.
-Thanks to Blake Mizerany for pointing me to the Sinatra Rakefile for reference.
+Meet Joe, the ultimate gem publisher.
Usage
----
+-----
-Considering you have a `foo.gemspec` (see below on how to produce this) in the current directory, try this:
+Joe assumes you have a .gemspec file in the current directory and it will use it to build the gem. Once you have it, try this:
$ thor joe:package
Congratulations, you should have your gem built and an archive copy inside the `pkg` directory.
-Now you'll want to release your new gem to RubyForge:
+Now go ahead and release your new gem to RubyForge:
$ thor joe:release
-You should be able to install your gem using `sudo gem install foo` after a few minutes. If the command complains about a missing `group_id`, try running `rubyforge config`. This hooks up your RubyForge account with the gem and where to release it.
+Easy, right? Wait a few minutes until RubyForge updates its gems index and you will be able to run `sudo gem install foo`.
-Note that the `joe:release` task relies on the `rubyforge` command, gently provided by your fellow `rubyforge` gem. If you don't have it:
- $ sudo gem install rubyforge
- $ rubyforge setup
- $ rubyforge config
+Troubleshooting
+---------------
+
+If you get an error about a missing `group_id`, try running `rubyforge config`. This hooks up your RubyForge account with the gem and configures where to release it.
+
Maintaining a gemspec file
----
+--------------------------
The easiest way I've found to maintain a gemspec file is by creating a `foo.gemspec.erb` template ([see example](http://github.com/soveran/ohm/blob/6c3e7d89d40de8de9eb7a0f772b38bcb8996a8f9/ohm.gemspec.erb)). Then you can use a Thor task to produce the real gemspec file:
$ thor joe:gemspec
+
Installation
----
+------------
+
+You need the `rubyforge` gem in order to release files. If you don't have it already:
+
+ $ sudo gem install rubyforge
+ $ rubyforge setup
+ $ rubyforge config
Make sure you have Thor installed:
@@ -45,22 +53,20 @@ And then simply:
$ thor install http://dimaion.com/joe/joe.thor
-That's all.
-
-Now try:
+That's it. Try:
$ thor -T
-And you should get a list of Thor tasks.
+And you will get a list of Thor tasks.
-License
----
+Thanks
+------
-See `LICENSE`, but basically MIT.
+Thanks to Blake Mizerany for pointing me to the Sinatra Rakefile for reference.
-Contributing
----
+License
+-------
-This is just a late night's hack. I'll be glad to take patches in the form of pull requests.
+See `LICENSE`, but basically MIT.

0 comments on commit a727008

Please sign in to comment.