= Overview
{}[http://travis-ci.org/bkuhlmann/gemsmith]
Gemsmith allows you to easily craft new gems via the command line with custom settings (if desired). If you are
a fan of Bundler[https://github.com/carlhuda/bundler], then you'll appreciate the additional capabilities of this
gem. Gemsmith is essentially an enhanced version of Bundler's gem building capabilities.
= Features
* Builds a gem skeleton with Bundler functionality in mind.
* Supports common settings that can be applied to new gem creations.
* Supports binary skeletons with Thor[https://github.com/wycats/thor] command line functionality.
* Supports {Ruby on Rails}[http://rubyonrails.org] skeletons.
* Supports RSpec[http://rspec.info] skeletons.
* Supports {Travis CI}[http://travis-ci.org] skeletons.
* Adds commonly needed README, CHANGELOG, LICENSE, etc. template files.
* Provides the ability to open any installed gem within your favorite editor.
= Requirements
1. A UNIX-based system.
2. {Ruby 1.9.x}[http://www.ruby-lang.org]
3. RubyGems[http://rubygems.org]
4. Bundler[https://github.com/carlhuda/bundler]
= Setup
Type the following from the command line to install:
gem install gemsmith
You can configure common settings for future gem builds by creating the following file:
~/.gemsmith/settings.yml
...using the following settings (for example):
---
:author_name: Brooke Kuhlmann
:author_email: brooke@redalchemist.com
:author_url: http://www.redalchemist.com
:company_name: Red Alchemist
If no options are configured, then the defaults are as follows:
gem_platform: Gem::Platform::RUBY
author_name:
author_email:
author_url: https://www.unknown.com
gem_url:
company_name:
company_url:
github_user:
year:
ruby_version: 1.9.0
rails_version: 3.2.0
= Usage
From the command line, type: gemsmith help
gemsmith -c, [create=GEM_NAME] # Create new gem.
gemsmith -e, [edit] # Edit gem settings in default editor (assumes $EDITOR environment variable).
gemsmith -h, [help] # Show this message.
gemsmith -o, [open=NAME] # Opens gem in default editor (assumes $EDITOR environment variable).
gemsmith -v, [version] # Show version.
For more gem creation options, type: gemsmith help create
-b, [--bin] # Add binary support.
-r, [--rails] # Add Rails support.
-s, [--rspec] # Add RSpec support.
# Default: true
-t, [--travis] # Add Travis CI support.
# Default: true
Also, don't forget that once you have created your gem skeleton, the following rake tasks are also
available to you via Bundler (i.e. rake -T):
rake build # Build -.gem into the pkg directory
rake install # Build and install -.gem into system gems
rake release # Create tag v0.1.1 and build and push -.gem to Rubygems
= Best Practices
1. {Best Practices While Cutting Gems}[http://rubysource.com/crafting-rubies-best-practices-while-cutting-gems].
2. {Ruby on Rails Gem Packaging}[http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices].
3. {Why You Should Use a BSD Style License}[http://www.freebsd.org/doc/en/articles/bsdl-gpl/article.html].
4. Ensure the RUBYOPT env variable includes the -w option. {Details}[http://avdi.org/devblog/2011/06/23/how-ruby-helps-you-fix-your-broken-code].
= Tests
To test, do the following:
1. cd to the gem root.
2. bundle install
3. bundle exec rspec spec
= Contributions
Please log all feedback/issues via {GitHub Issues}[https://github.com/bkuhlmann/gemsmith/issues]. Thanks.
= Credits
Developed by {Brooke Kuhlmann}[http://www.redalchemist.com] at {Red Alchemist}[http://www.redalchemist.com]
= License
Copyright (c) 2011 {Red Alchemist}[http://www.redalchemist.com].
Read the LICENSE for details.
= History
Read the CHANGELOG for details.