Creating a Gem isn't that difficult and I would advise to try building a gem from scratch, without any tools. After you know what's involved (creating a gemspec, building and pushing it to rubygems.org), you can use tools to speed up the process. My guess is you won't because making a gem is hardly the trouble at all.

Good point. It is better to understand how to do it from scratch before you use a generator. This will make it alot easier to debug any problems that arise if you decide to use Jeweler. I do think that Jeweler makes it alot easier to create a gem and it forces you to do things like creating a description, versioning, etc.. why would you create it from scratch (after you do it once to learn it), when you can use a Jeweler and speed the process? Waste of time in my opinion, and less prone to errors.
–
cowboycodedDec 5 '10 at 19:35

sorry I'm late: What jeweler creates isn't easier, it just moves the stuff to the Rakefile. A gemspec is only about 10 lines. I like the stuff bundler generates though. Sensible and minimal.
–
iainDec 9 '10 at 21:57

2

Learning to write a gem from scratch instead of using a generator is like writing a web framework from scratch without using rails new. I see your point about creating one from scratch, but for someone new to creating gems (or anything for that matter), sometimes it's easier to learn by example. When you see what the generator builds, you can learn what each piece does and why it is important to the structure. Once you understand how it works, then you can write one from scratch.
–
AndrewJul 16 '11 at 5:54

In that case, I would go for the generator provided by bundler gem.
–
iainJul 17 '11 at 11:34

I would go with Jeweler. The Bundler skeleton is only going to give you the basics. Jeweler has alot more options to work with and many helpful rake tasks for versioning, pushing to github, creating the gemspec, building and installing.

If you are working with Rails 3 engines, I have a Jeweler fork (definitely a work-in-progress) that will generate the app skelaton and include the engine file. You just have to run the jeweler command with --rails3-engine as an option. Here is the fork if you are interested:https://github.com/johnmcaliley/jeweler

There are some rules that you should follow when creating a gem. Such as naming conventions and versioning rules.
I recently wrote a post on creating gems in netguru's blog. I think you'll find what you need in there.