Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There are several tools to help you build your own gems. <a href="http://seattlerb.rubyforge.org/hoe/" rel="noreferrer">hoe</a> and <a href="http://newgem.rubyforge.org/" rel="noreferrer">newgem</a> are the best-known, and have a lot of good qualities. However, hoe adds itself as a dependency to your gem, and newgem has become a very large tool, one that I find unwieldy when I want to create and deploy a gem quickly.</p> <p>My favorite tool is <a href="http://codeforpeople.rubyforge.org/bones/" rel="noreferrer">Mr Bones</a> by Tim Pease. It’s lightweight, featureful, and does not add dependencies to your project. To create a project with it, you just run <code>bones &lt;my_project_name&gt;</code> on the command line, and a skeleton is built for you, complete with a <code>lib</code> directory for your code, a <code>bin</code> directory for your tools, and a test directory. The configuration is in a <code>Rakefile</code>, and it’s clear and concise. Here's the configuration for a project I did a few months ago:</p> <pre><code>load 'tasks/setup.rb' ensure_in_path 'lib' require 'friend-feed' task :default =&gt; 'test' PROJ.name = 'friend-feed' PROJ.authors = 'Clinton R. Nixon' PROJ.email = 'crnixon@gmail.com' PROJ.url = 'friend-feed.rubyforge.org' PROJ.rubyforge_name = 'friend-feed' PROJ.dependencies = ['json'] PROJ.version = FriendFeed::VERSION PROJ.exclude = %w(.git pkg) </code></pre> <p>Mr Bones has the standard set of features you’d expect: you can use it to package up gems and tarfiles of your library, as well as release it on RubyForge and deploy your documentation there. Its killer feature, though, is its ability to freeze its skeleton in your home directory. When you run <code>bones --freeze</code>, a directory named <code>.mrbones</code> is copied into your home directory. You can edit the files in there to make a skeleton for your gems that works the way you work, and from then on, when you run bones to create a new gem, it will use your personal gem skeleton. You can unfreeze Mr Bones by running <code>bones --unfreeze</code> and your skeleton will be backed up, and the default skeleton will be used again.</p> <p>(Editorial note: I wrote a blog post about this several months ago, and most of this is copied from it.)</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload