= Overview 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. * Allows for 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] test 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: year: ruby_version: 1.9.0 rails_version: 3.1.0 post_install_message: nil = 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 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.