<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>debbbbie (debbbbie)</title>
    <link>https://ruby-china.org/debbbbie</link>
    <description>深藏功与明</description>
    <language>en-us</language>
    <item>
      <title>Awesome Ruby Toolbox</title>
      <description>&lt;h2 id="Awesome Ruby Toolbox "&gt;Awesome Ruby Toolbox &lt;a href="https://github.com/sindresorhus/awesome" rel="nofollow" target="_blank" title=""&gt;&lt;img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" title="" alt="Awesome"&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.ruby-toolbox.com" rel="nofollow" target="_blank" title=""&gt;www.ruby-toolbox.com&lt;/a&gt; 收集了 Ruby 常用的 Gem, 并作出清晰合理的分类，已经有将近 200 个分类、2000 多个 Gem。&lt;/p&gt;

&lt;p&gt;本篇对 Ruby Toolbox 进行了整理，并移除已经废弃的 Gem, 最终以 markdown 格式呈现给大家，使大家可以用自己喜欢的方式阅读、学习。&lt;/p&gt;

&lt;p&gt;欢迎 Star &amp;amp; Fork, 多提宝贵意见 ~~ &lt;a href="https://github.com/debbbbie/awesome-ruby-toolbox" rel="nofollow" target="_blank"&gt;https://github.com/debbbbie/awesome-ruby-toolbox&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="#Active%20Record%20Plugins" title=""&gt;Active Record Plugins&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20DB%20Adapters" title=""&gt;Active Record DB Adapters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Default%20Values" title=""&gt;Active Record Default Values&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Enumerations" title=""&gt;Active Record Enumerations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Index%20Assistants" title=""&gt;Active Record Index Assistants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Named%20Scopes" title=""&gt;Active Record Named Scopes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Nesting" title=""&gt;Active Record Nesting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Sharding" title=""&gt;Active Record Sharding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Soft%20Delete" title=""&gt;Active Record Soft Delete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Sortables" title=""&gt;Active Record Sortables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20User%20Stamping" title=""&gt;Active Record User Stamping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Value%20Cleanup" title=""&gt;Active Record Value Cleanup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Active%20Record%20Versioning" title=""&gt;Active Record Versioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Pagination" title=""&gt;Pagination&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Comments" title=""&gt;Rails Comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20DB%20Bootstrapping" title=""&gt;Rails DB Bootstrapping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Ratings" title=""&gt;Rails Ratings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Search" title=""&gt;Rails Search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Tagging" title=""&gt;Rails Tagging&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Background%20Processing" title=""&gt;Background Processing&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Background%20Jobs" title=""&gt;Background Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Daemonizing" title=""&gt;Daemonizing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Daemon%20Management" title=""&gt;Daemon Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Scheduling" title=""&gt;Scheduling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Code%20Quality" title=""&gt;Code Quality&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Code%20Metrics" title=""&gt;Code Metrics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Communication" title=""&gt;Communication&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Asynchronous%20E-Mail" title=""&gt;Asynchronous E-Mail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CRM%20Apps" title=""&gt;CRM Apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#E-Mail%20Preview" title=""&gt;E-Mail Preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#E-Mail%20Processing" title=""&gt;E-Mail Processing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#E-Mail%20Sending" title=""&gt;E-Mail Sending&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Exchange%20Clients" title=""&gt;Exchange Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Forum%20Systems" title=""&gt;Forum Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Inline%20CSS%20for%20E-Mail" title=""&gt;Inline CSS for E-Mail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#IRC%20Bots" title=""&gt;IRC Bots&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Content%20Management%20&amp;amp;%20Blogging" title=""&gt;Content Management &amp;amp; Blogging&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Blog%20Engines" title=""&gt;Blog Engines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Content%20Management" title=""&gt;Content Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Static%20Website%20Generation" title=""&gt;Static Website Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Wiki%20Apps" title=""&gt;Wiki Apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#CSS" title=""&gt;CSS&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#CSS%20with%20Ruby" title=""&gt;CSS with Ruby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Font-Face%20Servers" title=""&gt;Font-Face Servers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Data%20Persistence" title=""&gt;Data Persistence&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Amazon%20DynamoDB" title=""&gt;Amazon DynamoDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CouchDB%20Clients" title=""&gt;CouchDB Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CSV%20Parsers" title=""&gt;CSV Parsers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Data%20Migration" title=""&gt;Data Migration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#MongoDB%20Clients" title=""&gt;MongoDB Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Object-relational%20mapping" title=""&gt;Object-relational mapping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Redis%20Clients" title=""&gt;Redis Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SQL%20Database%20Adapters" title=""&gt;SQL Database Adapters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Developer%20Tools" title=""&gt;Developer Tools&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Benchmarking" title=""&gt;Benchmarking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CLI%20Option%20Parsers" title=""&gt;CLI Option Parsers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CLI%20Progress%20Bars" title=""&gt;CLI Progress Bars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Concurrent%20Processing" title=""&gt;Concurrent Processing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Configuration%20Management" title=""&gt;Configuration Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deprecation%20Tools" title=""&gt;Deprecation Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Gem%20and%20Library%20Inspection" title=""&gt;Gem and Library Inspection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Gem%20Creation" title=""&gt;Gem Creation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#git%20Tools" title=""&gt;git Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#GUI%20Frameworks" title=""&gt;GUI Frameworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#irb%20Alternatives" title=""&gt;irb Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#irb%20Tools" title=""&gt;irb Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Presentation%20Software" title=""&gt;Presentation Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Project%20Management" title=""&gt;Project Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Ruby%20Core%20Extensions" title=""&gt;Ruby Core Extensions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Ruby%20Version%20Management" title=""&gt;Ruby Version Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Scripting%20Frameworks" title=""&gt;Scripting Frameworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Terminal%20Coloring" title=""&gt;Terminal Coloring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Text%20Editors%20in%20Ruby" title=""&gt;Text Editors in Ruby&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Documentation%20Tools" title=""&gt;Documentation Tools&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Documentation%20Generators" title=""&gt;Documentation Generators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Gem%20Doc%20Viewers" title=""&gt;Gem Doc Viewers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Documents%20&amp;amp;%20Reports" title=""&gt;Documents &amp;amp; Reports&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#PDF%20Generation" title=""&gt;PDF Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#PDF%20Processing" title=""&gt;PDF Processing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Reports%20&amp;amp;%20Spreadsheets" title=""&gt;Reports &amp;amp; Spreadsheets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#E-Commerce%20and%20Payments" title=""&gt;E-Commerce and Payments&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Online%20Shops" title=""&gt;Online Shops&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Payments" title=""&gt;Payments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Subscription%20Management" title=""&gt;Subscription Management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Fun" title=""&gt;Fun&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Game%20libraries" title=""&gt;Game libraries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Music%20&amp;amp;%20MIDI" title=""&gt;Music &amp;amp; MIDI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Graphics" title=""&gt;Graphics&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Graphing" title=""&gt;Graphing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Image%20Processing" title=""&gt;Image Processing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#QR%20Codes" title=""&gt;QR Codes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Visualizing%20Data" title=""&gt;Visualizing Data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#HTML%20&amp;amp;%20Markup" title=""&gt;HTML &amp;amp; Markup&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Breadcrumb%20Builders" title=""&gt;Breadcrumb Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Form%20Builders" title=""&gt;Form Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Markup%20processors" title=""&gt;Markup processors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Microformats" title=""&gt;Microformats&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Menu%20Builders" title=""&gt;Rails Menu Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Wizards" title=""&gt;Rails Wizards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Syntax%20Highlighting" title=""&gt;Syntax Highlighting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Table%20Builders" title=""&gt;Table Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Template%20Engines" title=""&gt;Template Engines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#JavaScript" title=""&gt;JavaScript&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#JavaScript%20Runtimes" title=""&gt;JavaScript Runtimes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#JavaScript%20Testing" title=""&gt;JavaScript Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#JavaScript%20Tools" title=""&gt;JavaScript Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Prototype%20Replacements" title=""&gt;Prototype Replacements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20In-Place%20Editing" title=""&gt;Rails In-Place Editing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Maintenance%20&amp;amp;%20Monitoring" title=""&gt;Maintenance &amp;amp; Monitoring&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#App%20Instrumentation" title=""&gt;App Instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Exception%20Notification" title=""&gt;Exception Notification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Log%20Analysis" title=""&gt;Log Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Logging" title=""&gt;Logging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Maintenance%20Mode" title=""&gt;Maintenance Mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Server%20Monitoring" title=""&gt;Server Monitoring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Package%20&amp;amp;%20Dependency%20Management" title=""&gt;Package &amp;amp; Dependency Management&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Bundler%20Tools" title=""&gt;Bundler Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Dependency%20Management" title=""&gt;Dependency Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Gem%20Hosting" title=""&gt;Gem Hosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Packaging%20Systems" title=""&gt;Packaging Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Packaging%20to%20Executables" title=""&gt;Packaging to Executables&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Provision,%20Deploy%20&amp;amp;%20Host" title=""&gt;Provision, Deploy &amp;amp; Host&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Amazon%20Web%20Services" title=""&gt;Amazon Web Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Asset%20Distribution" title=""&gt;Asset Distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Asset%20Management" title=""&gt;Asset Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Backups" title=""&gt;Backups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Continuous%20Integration" title=""&gt;Continuous Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Deployment%20Automation" title=""&gt;Deployment Automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#System%20Provisioning" title=""&gt;System Provisioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Web%20servers" title=""&gt;Web servers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Rails%20Plugins" title=""&gt;Rails Plugins&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Rails%20Activity%20Feeds" title=""&gt;Rails Activity Feeds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Admin%20Interfaces" title=""&gt;Rails Admin Interfaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20App%20Templates" title=""&gt;Rails App Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Class%20Diagrams" title=""&gt;Rails Class Diagrams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20File%20Uploads" title=""&gt;Rails File Uploads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Permalinks%20&amp;amp;%20Slugs" title=""&gt;Rails Permalinks &amp;amp; Slugs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Presenters" title=""&gt;Rails Presenters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Subdomains" title=""&gt;Rails Subdomains&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Recommendation%20Engines" title=""&gt;Recommendation Engines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Reputation%20Engines" title=""&gt;Reputation Engines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#State%20Machines" title=""&gt;State Machines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#User%20Messaging%20Systems" title=""&gt;User Messaging Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Security" title=""&gt;Security&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Encryption" title=""&gt;Encryption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#LDAP" title=""&gt;LDAP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Authentication" title=""&gt;Rails Authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Authorization" title=""&gt;Rails Authorization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Captcha" title=""&gt;Rails Captcha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Security%20Tools" title=""&gt;Security Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Spam%20Detection" title=""&gt;Spam Detection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Testing" title=""&gt;Testing&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#A/B%20Testing" title=""&gt;A/B Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Acceptance%20Test%20Frameworks" title=""&gt;Acceptance Test Frameworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Browser%20testing" title=""&gt;Browser testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Continuous%20Testing" title=""&gt;Continuous Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Cucumber%20Steps" title=""&gt;Cucumber Steps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Cucumber%20Tools" title=""&gt;Cucumber Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Distributed%20Testing" title=""&gt;Distributed Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Mocking" title=""&gt;Mocking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Mocking%20Web%20Requests" title=""&gt;Mocking Web Requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Fixture%20Replacement" title=""&gt;Rails Fixture Replacement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Random%20Data%20Generation" title=""&gt;Random Data Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Testing%20Rails%20Engines" title=""&gt;Testing Rails Engines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Test::Unit%20Extensions" title=""&gt;Test::Unit Extensions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Time%20Warping" title=""&gt;Time Warping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Unit%20Test%20Frameworks" title=""&gt;Unit Test Frameworks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Time%20&amp;amp;%20Space" title=""&gt;Time &amp;amp; Space&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#Calendars" title=""&gt;Calendars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Geocoding%20&amp;amp;%20Maps" title=""&gt;Geocoding &amp;amp; Maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#I18n" title=""&gt;I18n&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Natural%20Language%20Date%20Parsing" title=""&gt;Natural Language Date Parsing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Recurring%20Events" title=""&gt;Recurring Events&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="#Web%20Apps,%20Services%20&amp;amp;%20Interaction" title=""&gt;Web Apps, Services &amp;amp; Interaction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#API%20Builders" title=""&gt;API Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#API%20Clients" title=""&gt;API Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Atom%20&amp;amp;%20RSS%20Feed%20Parsing" title=""&gt;Atom &amp;amp; RSS Feed Parsing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#HTML%20parsing" title=""&gt;HTML parsing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#HTTP%20clients" title=""&gt;HTTP clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#HTTP%20Pub/Sub" title=""&gt;HTTP Pub/Sub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#JSON%20Parsers" title=""&gt;JSON Parsers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Multitenancy" title=""&gt;Multitenancy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Rails%20Controller%20Abstractions" title=""&gt;Rails Controller Abstractions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SOAP%20Clients" title=""&gt;SOAP Clients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Social%20Network%20Builders" title=""&gt;Social Network Builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#URL%20Rewriting" title=""&gt;URL Rewriting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#User%20Agent%20Detection" title=""&gt;User Agent Detection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Web%20Analytics" title=""&gt;Web Analytics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Web%20App%20Frameworks" title=""&gt;Web App Frameworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Web%20Content%20Scrapers" title=""&gt;Web Content Scrapers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#XML%20Mapping" title=""&gt;XML Mapping&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Active Record Plugins"&gt;Active Record Plugins&lt;/h2&gt;&lt;h3 id="Active Record DB Adapters"&gt;Active Record DB Adapters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails-sqlserver/activerecord-sqlserver-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-sqlserver-adapter&lt;/a&gt; - ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-jdbc-adapter&lt;/a&gt; - AR-JDBC is a database adapter for Rails' ActiveRecord component designed to be used with JRuby built upon Java's JDBC API for database access. Provides (ActiveRecord) built-in adapters: MySQL, PostgreSQL and SQLite3 as well as adapters for popular databases such as Oracle, SQLServer, DB2, FireBird and even Java (embed) databases: Derby, HSQLDB and H2. It allows to connect to virtually any JDBC-compliant database with your JRuby on Rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-jdbcmysql-adapter&lt;/a&gt; - MySQL JDBC adapter for JRuby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-jdbcpostgresql-adapter&lt;/a&gt; - Postgres JDBC adapter for JRuby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-jdbcderby-adapter&lt;/a&gt; - Derby JDBC adapter for JRuby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsim/oracle-enhanced" rel="nofollow" target="_blank" title=""&gt;oracle-enhanced&lt;/a&gt; - Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases. This adapter is superset of original ActiveRecord Oracle adapter.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nulldb/nulldb" rel="nofollow" target="_blank" title=""&gt;nulldb&lt;/a&gt; - A database backend that translates database interactions into no-ops. Using NullDB enables you to test your model business logic - including after_save hooks - without ever touching a real database.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Default Values"&gt;Active Record Default Values&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/FooBarWidget/default_value_for" rel="nofollow" target="_blank" title=""&gt;Default value for&lt;/a&gt; - The default_value_for plugin allows one to define default values for ActiveRecord models in a declarative manner&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Enumerations"&gt;Active Record Enumerations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/brainspec/enumerize" rel="nofollow" target="_blank" title=""&gt;enumerize&lt;/a&gt; - Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lwe/simple_enum" rel="nofollow" target="_blank" title=""&gt;Simple enum&lt;/a&gt; - Provides enum-like fields for ActiveRecord, ActiveModel and Mongoid models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeffp/enumerated_attribute" rel="nofollow" target="_blank" title=""&gt;Enumerated attribute&lt;/a&gt; - Enumerated model attributes and view helpers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/beerlington/classy_enum" rel="nofollow" target="_blank" title=""&gt;Classy Enum&lt;/a&gt; - A utility that adds class based enum functionality to ActiveRecord attributes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cassiomarques/enumerate_it" rel="nofollow" target="_blank" title=""&gt;Enumerate it&lt;/a&gt; - Enumerations for Ruby with some magic powers!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adzap/active_enum" rel="nofollow" target="_blank" title=""&gt;Active Enum&lt;/a&gt; - Define enum classes in Rails and use them to enumerate ActiveRecord attributes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/electronick/enum_column" rel="nofollow" target="_blank" title=""&gt;enum_column3&lt;/a&gt; - Enable enum type for MySQL db.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Index Assistants"&gt;Active Record Index Assistants&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/matthuhiggins/foreigner" rel="nofollow" target="_blank" title=""&gt;foreigner&lt;/a&gt; - Adds helpers to migrations and dumps foreign keys to schema.rb&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/eladmeidar/rails_indexes" rel="nofollow" target="_blank" title=""&gt;Rails indexes&lt;/a&gt; - A rake task to track down missing database indexes. does not assume that all foreign keys end with the convention of _id.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lomba/schema_plus" rel="nofollow" target="_blank" title=""&gt;schema_plus&lt;/a&gt; - SchemaPlus is a gem that simply pulls in a collection of other gems from the SchemaPlus family of ActiveRecord extensions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/plentz/lol_dba" rel="nofollow" target="_blank" title=""&gt;lol_dba&lt;/a&gt; - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed. Also, it can generate .sql migration scripts.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jenseng/immigrant" rel="nofollow" target="_blank" title=""&gt;immigrant&lt;/a&gt; - Adds a generator for creating a foreign key migration based on your current model associations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/samdanavia/ambitious_query_indexer" rel="nofollow" target="_blank" title=""&gt;Ambitious query indexer&lt;/a&gt; - Pain-free indexing to speed up your Rails app&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Named Scopes"&gt;Active Record Named Scopes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ernie/ransack" rel="nofollow" target="_blank" title=""&gt;ransack&lt;/a&gt; - Ransack is the successor to the MetaSearch gem. It improves and expands upon MetaSearch's functionality, but does not have a 100%-compatible API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/binarylogic/searchlogic" rel="nofollow" target="_blank" title=""&gt;Searchlogic&lt;/a&gt; - Searchlogic makes using ActiveRecord named scopes easier and less repetitive.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/pacecar" rel="nofollow" target="_blank" title=""&gt;Pacecar&lt;/a&gt; - Generated scopes for ActiveRecord classes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jhund/filterrific" rel="nofollow" target="_blank" title=""&gt;filterrific&lt;/a&gt; - Filterrific is a Rails Engine plugin that makes it easy to filter, search, and sort your ActiveRecord lists.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/spilliton/randumb" rel="nofollow" target="_blank" title=""&gt;randumb&lt;/a&gt; - Adds the ability to pull random records from ActiveRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/can_search" rel="nofollow" target="_blank" title=""&gt;Can search&lt;/a&gt; - Build common named scopes automatically, and provide a simple way to merge them with a single #search call.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yfactorial/utility_scopes" rel="nofollow" target="_blank" title=""&gt;Utility scopes&lt;/a&gt; - A collection of utilitarian named scopes providing common functionality for ActiveRecord models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/samleb/sexy_scopes" rel="nofollow" target="_blank" title=""&gt;SexyScopes&lt;/a&gt; - Small DSL to create ActiveRecord (&amp;gt;= 3.1) attribute predicates without writing SQL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Nesting"&gt;Active Record Nesting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/awesome_nested_set" rel="nofollow" target="_blank" title=""&gt;Awesome nested set&lt;/a&gt; - An awesome nested set implementation for Active Record&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stefankroes/ancestry" rel="nofollow" target="_blank" title=""&gt;Ancestry&lt;/a&gt; - Ancestry allows the records of a ActiveRecord model to be organized in a tree structure, using a single, intuitively formatted database column. It exposes all the standard tree structure relations (ancestors, parent, root, children, siblings, descendants) and all of them can be fetched in a single sql query. Additional features are named_scopes, integrity checking, integrity restoration, arrangement of (sub)tree into hashes and different strategies for dealing with orphaned records.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/acts_as_tree" rel="nofollow" target="_blank" title=""&gt;Acts as tree&lt;/a&gt; - A gem that adds simple support for organizing ActiveRecord models into parent–children relationships.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mceachen/closure_tree" rel="nofollow" target="_blank" title=""&gt;Closure Tree&lt;/a&gt; - Easily and efficiently make your ActiveRecord model support hierarchies&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chris/better_nested_set" rel="nofollow" target="_blank" title=""&gt;Better nested set&lt;/a&gt; - better_nested_set Rails plugin (my fork from official SVN)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/acts_as_nested_set" rel="nofollow" target="_blank" title=""&gt;Acts as nested set&lt;/a&gt; - NOTICE: official repository moved to &lt;a href="https://github.com/bbommarito/acts_as_nested_set" rel="nofollow" target="_blank"&gt;https://github.com/bbommarito/acts_as_nested_set&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Sharding"&gt;Active Record Sharding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/tchandy/octopus" rel="nofollow" target="_blank" title=""&gt;Octopus&lt;/a&gt; - This gem allows you to use sharded databases with ActiveRecord. This also provides a interface for replication and for running migrations with multiples shards.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kovyrin/db-charmer" rel="nofollow" target="_blank" title=""&gt;Db-charmer&lt;/a&gt; - DbCharmer is a Rails plugin (and gem) that could be used to manage AR model connections, implement master/slave query schemes, sharding and other magic features many high-scale applications need.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/masochism" rel="nofollow" target="_blank" title=""&gt;masochism&lt;/a&gt; - ActiveRecord connection proxy for master/slave connections&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schoefmax/multi_db" rel="nofollow" target="_blank" title=""&gt;multi_db&lt;/a&gt; - Connection proxy for ActiveRecord for single master / multiple slave database deployments&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mperham/data_fabric" rel="nofollow" target="_blank" title=""&gt;Data fabric&lt;/a&gt; - Sharding and replication support for ActiveRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/drecom/activerecord-turntable" rel="nofollow" target="_blank" title=""&gt;activerecord-turntable&lt;/a&gt; - ActiveRecord sharding extension&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Soft Delete"&gt;Active Record Soft Delete&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/radar/paranoia" rel="nofollow" target="_blank" title=""&gt;paranoia&lt;/a&gt; - Paranoia is a re-implementation of acts_as_paranoid for Rails 3, using much, much, much less code. You would use either plugin / gem if you wished that when you called destroy on an Active Record object that it didn't actually destroy it, but just "hid" the record. Paranoia does this by setting a deleted_at field to the current time when you destroy a record, and hides it by scoping all queries on your model to only include records which do not have a deleted_at field.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/goncalossilva/rails3_acts_as_paranoid" rel="nofollow" target="_blank" title=""&gt;rails3_acts_as_paranoid&lt;/a&gt; - Active Record (~&amp;gt;3.2) plugin which allows you to hide and restore records without actually deleting them. Check its GitHub page for more in-depth information.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/acts_as_paranoid" rel="nofollow" target="_blank" title=""&gt;Acts as paranoid&lt;/a&gt; - Check the home page for more in-depth information.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/winton/acts_as_archive" rel="nofollow" target="_blank" title=""&gt;Acts as archive&lt;/a&gt; - Don't delete your records, move them to a different table. Like acts_as_paranoid, but doesn't mess with your SQL queries.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/JackDanger/permanent_records" rel="nofollow" target="_blank" title=""&gt;Permanent records&lt;/a&gt; - Never Lose Data. Rather than deleting rows this sets Record#deleted_at and gives you all the scopes you need to work with your data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dockyard/destroyed_at" rel="nofollow" target="_blank" title=""&gt;destroyed_at&lt;/a&gt; - Safe destroy for ActiveRecord.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ajh/acts_as_soft_deletable" rel="nofollow" target="_blank" title=""&gt;Acts as soft deletable&lt;/a&gt; - Rails plugin that provides the ability to soft delete models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/teambox/immortal" rel="nofollow" target="_blank" title=""&gt;immortal&lt;/a&gt; - Typical paranoid gem built for Rails 3 and with the minimum code needed to satisfy acts_as_paranoid's API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/expectedbehavior/acts_as_archival" rel="nofollow" target="_blank" title=""&gt;acts_as_archival&lt;/a&gt; - An ActiveRecord plugin for atomic archiving and unarchiving of object trees. Inspired by ActsAsParanoid and PermanentRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/soft_deletion" rel="nofollow" target="_blank" title=""&gt;soft_deletion&lt;/a&gt; - Explicit soft deletion for ActiveRecord via deleted_at and default scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Sortables"&gt;Active Record Sortables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/swanandp/acts_as_list" rel="nofollow" target="_blank" title=""&gt;Acts as list&lt;/a&gt; - This "acts_as" extension provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a "position" column defined as an integer on the mapped database table.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mixonic/ranked-model" rel="nofollow" target="_blank" title=""&gt;ranked-model&lt;/a&gt; - ranked-model is a modern row sorting library built for Rails 3 &amp;amp; 4. It uses ARel aggressively and is better optimized than most other libraries.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shuber/sortable" rel="nofollow" target="_blank" title=""&gt;Sortable&lt;/a&gt; - Sortable provides a DSL for defining sort order on any Ruby object To use it, you just call the sortable method and pass it a list of methods and/or blocks; when you call sort on a collection of these objects, each method/block is evaluated in turn, and the first that provides a non-zero sort value is used.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codegram/resort" rel="nofollow" target="_blank" title=""&gt;Resort&lt;/a&gt; - Positionless model sorting for Rails 3.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record User Stamping"&gt;Active Record User Stamping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/delynn/userstamp" rel="nofollow" target="_blank" title=""&gt;Userstamp&lt;/a&gt; - This Rails plugin extends ActiveRecord::Base to add automatic updating of created_by and updated_by attributes of your models in much the same way that the ActiveRecord::Timestamp module updates created_(at/on) and updated_(at/on) attributes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/user_stamp" rel="nofollow" target="_blank" title=""&gt;User stamp&lt;/a&gt; - A Rails plugin that adds the ability to automatically stamp each record with the currently logged in user.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Value Cleanup"&gt;Active Record Value Cleanup&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mdeering/attribute_normalizer" rel="nofollow" target="_blank" title=""&gt;Attribute normalizer&lt;/a&gt; - This rubygem does not have a description or summary.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rmm5t/strip_attributes" rel="nofollow" target="_blank" title=""&gt;Strip attributes&lt;/a&gt; - StripAttributes automatically strips all ActiveRecord model attributes of leading and trailing whitespace before validation. If the attribute is blank, it strips the value to nil.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/symbolize" rel="nofollow" target="_blank" title=""&gt;symbolize&lt;/a&gt; - ActiveRecord/Mongoid enums with i18n&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubiety/nilify_blanks" rel="nofollow" target="_blank" title=""&gt;Nilify blanks&lt;/a&gt; - Provides a framework for saving incoming blank values as nil in the database in instances where you'd rather use DB NULL than simply a blank string.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/holli/auto_strip_attributes" rel="nofollow" target="_blank" title=""&gt;auto_strip_attributes&lt;/a&gt; - AutoStripAttributes helps to remove unnecessary whitespaces from ActiveRecord or ActiveModel attributes. It's good for removing accidental spaces from user inputs. It works by adding a before_validation hook to the record. It has option to set empty strings to nil or to remove extra spaces inside the string.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Active Record Versioning"&gt;Active Record Versioning&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/airblade/paper_trail" rel="nofollow" target="_blank" title=""&gt;PaperTrail&lt;/a&gt; - Track changes to your models' data. Good for auditing or versioning.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/audited" rel="nofollow" target="_blank" title=""&gt;audited&lt;/a&gt; - Log all changes to your models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/laserlemon/vestal_versions" rel="nofollow" target="_blank" title=""&gt;Vestal Versions&lt;/a&gt; - Keep a DRY history of your ActiveRecord models' changes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/acts_as_versioned" rel="nofollow" target="_blank" title=""&gt;Acts as versioned&lt;/a&gt; - Add simple versioning to ActiveRecord models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/continuum/espinita" rel="nofollow" target="_blank" title=""&gt;espinita&lt;/a&gt; - Audit activerecord models like a boss&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rich/acts_as_revisable" rel="nofollow" target="_blank" title=""&gt;Acts as revisable&lt;/a&gt; - acts_as_revisable enables revision tracking, querying, reverting and branching of ActiveRecord models. Inspired by acts_as_versioned.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmckible/version_fu" rel="nofollow" target="_blank" title=""&gt;Version fu&lt;/a&gt; - version_fu helps version your ActiveRecord models. It is based on Rick Olson's acts_as_versioned and is compatible with Rails 3.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/harleyttd/auditable" rel="nofollow" target="_blank" title=""&gt;auditable&lt;/a&gt; - A simple gem that audit ActiveRecord models' attributes or methods by taking snapshots and diff them for you. Starting from scratch to work with Rails 3.2.2 onwards&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubiety/has_draft" rel="nofollow" target="_blank" title=""&gt;has_draft&lt;/a&gt; - Allows for your ActiveRecord models to have drafts which are stored in a separate duplicate table.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/TheBreeze/shadow" rel="nofollow" target="_blank" title=""&gt;Shadow&lt;/a&gt; - A zero-configuration RESTful ActiveRecord server.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Pagination"&gt;Pagination&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/amatsuda/kaminari" rel="nofollow" target="_blank" title=""&gt;Kaminari&lt;/a&gt; - Kaminari is a Scope &amp;amp; Engine based, clean, powerful, agnostic, customizable and sophisticated paginator for Rails 3+&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mislav/will_paginate" rel="nofollow" target="_blank" title=""&gt;will_paginate&lt;/a&gt; - will_paginate provides a simple API for performing paginated queries with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination links in Rails, Sinatra and Merb web apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mynameisrufus/sorted" rel="nofollow" target="_blank" title=""&gt;sorted&lt;/a&gt; - Data sorting library, used by other libs to construct queries and more&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mcasimir/fullstack-admin" rel="nofollow" target="_blank" title=""&gt;kaminari-bootstrap&lt;/a&gt; - Kaminari views for Twitter Bootstrap (rails engine)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mholling/paged_scopes" rel="nofollow" target="_blank" title=""&gt;Paged scopes&lt;/a&gt; - PagedScopes is an ActiveRecord pagination gem. It lets you easily paginate collection associations and named scopes. It also paginates collections which already have :limit and :offset scopes in place. You can also find the page containing a given object in a collection, and find the next and previous objects for each object in the collection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Comments"&gt;Rails Comments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/phusion/juvia" rel="nofollow" target="_blank" title=""&gt;juvia&lt;/a&gt; - A commenting server similar to Disqus and IntenseDebate. CURRENTLY UNMAINTAINED&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elight/acts_as_commentable_with_threading" rel="nofollow" target="_blank" title=""&gt;Acts as commentable with threading&lt;/a&gt; - Similar to acts_as_commentable; however, utilizes awesome_nested_set to provide threaded comments&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jackdempsey/acts_as_commentable" rel="nofollow" target="_blank" title=""&gt;Acts as commentable&lt;/a&gt; - Plugin/gem that provides comment functionality&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/norman/disqus" rel="nofollow" target="_blank" title=""&gt;Disqus&lt;/a&gt; - Integrates Disqus into your Ruby-powered site. Works with any Ruby website, and has view helpers for Rails and Merb.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lml/commontator" rel="nofollow" target="_blank" title=""&gt;commontator&lt;/a&gt; - A Rails engine for comments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Draiken/opinio" rel="nofollow" target="_blank" title=""&gt;opinio&lt;/a&gt; - Opinio is an engine used to add comments functionallity to rails 3 applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails DB Bootstrapping"&gt;Rails DB Bootstrapping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/seed-fu" rel="nofollow" target="_blank" title=""&gt;Seed-fu&lt;/a&gt; - Seed Fu is an attempt to once and for all solve the problem of inserting and maintaining seed data in a database. It uses a variety of techniques gathered from various places around the web and combines them to create what is hopefully the most robust seed data system around.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/james2m/seedbank" rel="nofollow" target="_blank" title=""&gt;seedbank&lt;/a&gt; - Extends Rails seeds to split out complex seeds into multiple files and lets each environment have it's own seeds.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/populator" rel="nofollow" target="_blank" title=""&gt;Populator&lt;/a&gt; - Mass populate an Active Record database.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sevenwire/bootstrapper" rel="nofollow" target="_blank" title=""&gt;Bootstrapper&lt;/a&gt; - A Rails plugin to assist in bootstrapping and seeding your database.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ffmike/db-populate" rel="nofollow" target="_blank" title=""&gt;Db-populate&lt;/a&gt; - Manage seed data for Rails projects&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Ratings"&gt;Rails Ratings&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/edgarjs/ajaxful-rating" rel="nofollow" target="_blank" title=""&gt;Ajaxful-rating&lt;/a&gt; - Provides a simple way to add rating functionality to your application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/edgarjs/ajaxful-rating" rel="nofollow" target="_blank" title=""&gt;ajaxful_rating&lt;/a&gt; - Provides a simple way to add rating functionality to your application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/muratguzel/letsrate" rel="nofollow" target="_blank" title=""&gt;letsrate&lt;/a&gt; - Provides the best solution to add rating functionality to your models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/azabaj/acts_as_rateable" rel="nofollow" target="_blank" title=""&gt;Acts as rateable&lt;/a&gt; - Acts_as_rateable is a rails plugin providing a rating interface for ActiveRecord models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/proton/mongoid_rateable" rel="nofollow" target="_blank" title=""&gt;mongoid_rateable&lt;/a&gt; - Provides fields and methods for the rating manipulation on Mongoid documents.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jasherai/acts-as-rated" rel="nofollow" target="_blank" title=""&gt;Acts-as-rated&lt;/a&gt; - Flexible, configurable, and easy to use with the defaults. Supports 3 different ways to manage rating statistics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Search"&gt;Rails Search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunspot/sunspot" rel="nofollow" target="_blank" title=""&gt;Sunspot&lt;/a&gt; - Sunspot is a library providing a powerful, all-ruby API for the Solr search engine. Sunspot manages the configuration of persistent Ruby classes for search and indexing and exposes Solr's most powerful features through a collection of DSLs. Complex search operations can be performed without hand-writing any boolean queries or building Solr parameters by hand.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunspot/sunspot" rel="nofollow" target="_blank" title=""&gt;sunspot_rails&lt;/a&gt; - Sunspot::Rails is an extension to the Sunspot library for Solr search. Sunspot::Rails adds integration between Sunspot and ActiveRecord, including defining search and indexing related methods on ActiveRecord models themselves, running a Sunspot-compatible Solr instance for development and test environments, and automatically commit Solr index changes at the end of each Rails request.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pat/thinking-sphinx" rel="nofollow" target="_blank" title=""&gt;Thinking-sphinx&lt;/a&gt; - An intelligent layer for ActiveRecord (via Rails and Sinatra) for the Sphinx full-text search tool.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/karmi/tire" rel="nofollow" target="_blank" title=""&gt;Tire&lt;/a&gt; - Tire is a Ruby client for the Elasticsearch search engine/database. It provides Ruby-like API for fluent communication with the Elasticsearch server and blends with ActiveModel class for convenient usage in Rails applications. It allows to delete and create indices, define mapping for them, supports the bulk API, and presents an easy-to-use DSL for constructing your queries. It has full ActiveRecord/ActiveModel compatibility, allowing you to index your models (incrementally upon saving, or in bulk), searching and paginating the results. Please check the documentation at &lt;a href="http://karmi.github.com/retire/" rel="nofollow" target="_blank"&gt;http://karmi.github.com/retire/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/searchkick" rel="nofollow" target="_blank" title=""&gt;searchkick&lt;/a&gt; - Intelligent search made easy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elasticsearch/elasticsearch-ruby" rel="nofollow" target="_blank" title=""&gt;elasticsearch&lt;/a&gt; - Ruby integrations for Elasticsearch (client, API, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Casecommons/pg_search" rel="nofollow" target="_blank" title=""&gt;pg_search&lt;/a&gt; - PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mwmitchell/rsolr" rel="nofollow" target="_blank" title=""&gt;Rsolr&lt;/a&gt; - RSolr aims to provide a simple and extensible library for working with Solr&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elasticsearch/elasticsearch-rails" rel="nofollow" target="_blank" title=""&gt;elasticsearch-rails&lt;/a&gt; - Ruby on Rails integrations for Elasticsearch.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/outoftime/sunspot" rel="nofollow" target="_blank" title=""&gt;sunspot_solr&lt;/a&gt; - Sunspot::Solr provides a bundled Solr distribution for use with Sunspot. Typical deployment environments will require more configuration, but this distribution is well suited to development and testing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/huacnlee/redis-search" rel="nofollow" target="_blank" title=""&gt;redis-search&lt;/a&gt; - High performance real-time prefix search, indexes store in Redis for Rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dougal/acts_as_indexed" rel="nofollow" target="_blank" title=""&gt;Acts As Indexed&lt;/a&gt; - Acts As Indexed is a plugin which provides a pain-free way to add fulltext search to your Ruby on Rails app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wvanbergen/scoped_search" rel="nofollow" target="_blank" title=""&gt;Scoped search&lt;/a&gt; - Scoped search makes it easy to search your ActiveRecord-based models. It will create a named scope :search_for that can be called with a query string. It will build an SQL query using the provided query string and a definition that specifies on what fields to search. Because the functionality is built on named_scope, the result of the search_for call can be used like any other named_scope, so it can be chained with another scope or combined with will_paginate. Because it uses standard SQL, it does not require any setup, indexers or daemons. This makes scoped_search suitable to quickly add basic search functionality to your application with little hassle. On the other hand, it may not be the best choice if it is going to be used on very large datasets or by a large user base.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dbalmain/ferret" rel="nofollow" target="_blank" title=""&gt;Ferret&lt;/a&gt; - Ferret is a super fast, highly configurable search library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathanl/searchlight" rel="nofollow" target="_blank" title=""&gt;searchlight&lt;/a&gt; - Searchlight is a low-magic way to build database searches using an ORM. It's compatible with ActiveRecord, Sequel, Mongoid, and any other ORM that can build queries by chaining method calls.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jkraemer/acts_as_ferret" rel="nofollow" target="_blank" title=""&gt;Acts as ferret&lt;/a&gt; - Rails plugin that adds powerful full text search capabilities to ActiveRecord models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tjackiw/acts_as_solr" rel="nofollow" target="_blank" title=""&gt;Acts as Solr&lt;/a&gt; - Acts As Solr&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/texticle/texticle" rel="nofollow" target="_blank" title=""&gt;Texticle&lt;/a&gt; - Texticle exposes full text search capabilities from PostgreSQL, extending ActiveRecord with scopes making search easy and fun!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dcrec1/acts_as_solr_reloaded" rel="nofollow" target="_blank" title=""&gt;Acts as solr reloaded&lt;/a&gt; - This gem adds full text search capabilities and many other nifty features from Apache Solr to any Rails model.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/xapit" rel="nofollow" target="_blank" title=""&gt;Xapit&lt;/a&gt; - Ruby library for interacting with Xapian. Includes full text search, faceted options, spelling suggestions, and more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brewster/elastictastic" rel="nofollow" target="_blank" title=""&gt;elastictastic&lt;/a&gt; - Elastictastic is an object-document mapper and lightweight API adapter for ElasticSearch. Elastictastic's primary use case is to define model classes which use ElasticSearch as a primary document-oriented data store, and to expose ElasticSearch's search functionality to query for those models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/garaio/xapian_db" rel="nofollow" target="_blank" title=""&gt;xapian_db&lt;/a&gt; - XapianDb is a ruby gem that combines features of nosql databases and fulltext indexing. It is based on Xapian, an efficient and powerful indexing library&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Tagging"&gt;Rails Tagging&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/acts-as-taggable-on" rel="nofollow" target="_blank" title=""&gt;Acts-as-taggable-on&lt;/a&gt; - With ActsAsTaggableOn, you can tag a single model on several contexts, such as skills, interests, and awards. It also provides other advanced functionality.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamesgolick/is_taggable" rel="nofollow" target="_blank" title=""&gt;Is taggable&lt;/a&gt; - tagging that doesn't want to be on steroids. it's skinny and happy to stay that way.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bradphelan/rocket_tag" rel="nofollow" target="_blank" title=""&gt;rocket_tag&lt;/a&gt; - A modern fast tagging framework for Rails 3.1+&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geemus/acts_as_taggable_redux" rel="nofollow" target="_blank" title=""&gt;Acts as taggable redux&lt;/a&gt; - Allows user owned tags for multiple classes, and makes tags easier to work with.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chrome/markable" rel="nofollow" target="_blank" title=""&gt;markable&lt;/a&gt; - Markable allows you to easily create a marking system in your rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattetti/acts_as_taggable_on_steroids" rel="nofollow" target="_blank" title=""&gt;Acts as taggable on steroids&lt;/a&gt; - Rails plugin that is based on acts_as_taggable by DHH but includes extras such as tests, smarter tag assignment, and tag cloud calculations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Background Processing"&gt;Background Processing&lt;/h2&gt;&lt;h3 id="Background Jobs"&gt;Background Jobs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/resque/resque" rel="nofollow" target="_blank" title=""&gt;Resque&lt;/a&gt; - Resque is a Redis-backed Ruby library for creating background jobs, placing those jobs on multiple queues, and processing them later. Background jobs can be any Ruby class or module that responds to perform. Your existing classes can easily be converted to background jobs or you can create new classes specifically to do work. Or, you can do both. Resque is heavily inspired by DelayedJob (which rocks) and is comprised of three parts: * A Ruby library for creating, querying, and processing jobs * A Rake task for starting a worker which processes jobs * A Sinatra app for monitoring queues, jobs, and workers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mperham/sidekiq" rel="nofollow" target="_blank" title=""&gt;sidekiq&lt;/a&gt; - Simple, efficient background processing for Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/delayed_job" rel="nofollow" target="_blank" title=""&gt;Delayed job&lt;/a&gt; - Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kr/beanstalkd" rel="nofollow" target="_blank" title=""&gt;Beanstalkd&lt;/a&gt; - Beanstalk is a simple, fast work queue.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-amqp/bunny" rel="nofollow" target="_blank" title=""&gt;Bunny&lt;/a&gt; - Easy to use, feature complete Ruby client for RabbitMQ 3.3 and later versions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jdantonio/concurrent-ruby" rel="nofollow" target="_blank" title=""&gt;concurrent-ruby&lt;/a&gt; - Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more. Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/delayed_job_active_record" rel="nofollow" target="_blank" title=""&gt;delayed_job_active_record&lt;/a&gt; - ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brandonhilkert/sucker_punch" rel="nofollow" target="_blank" title=""&gt;sucker_punch&lt;/a&gt; - Asynchronous processing library for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-amqp/amqp" rel="nofollow" target="_blank" title=""&gt;amqp&lt;/a&gt; - Mature EventMachine-based RabbitMQ client.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mperham/girl_friday" rel="nofollow" target="_blank" title=""&gt;girl_friday&lt;/a&gt; - Background processing, simplified&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryandotsmith/queue_classic" rel="nofollow" target="_blank" title=""&gt;Queue Classic&lt;/a&gt; - queue_classic is a queueing library for Ruby apps. (Rails, Sinatra, Etc...) queue_classic features asynchronous job polling, database maintained locks and no ridiculous dependencies. As a matter of fact, queue_classic only requires pg.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/documentcloud/cloud-crowd" rel="nofollow" target="_blank" title=""&gt;Cloud-crowd&lt;/a&gt; - The crowd, suddenly there where there was nothing before, is a mysterious and universal phenomenon. A few people may have been standing together -- five, ten or twelve, nor more; nothing has been announced, nothing is expected. Suddenly everywhere is black with people and more come streaming from all sides as though streets had only one direction.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gnufied/backgroundrb" rel="nofollow" target="_blank" title=""&gt;Backgroundrb&lt;/a&gt; - A Ruby/Rails job server and scheduler&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/purzelrakete/workling" rel="nofollow" target="_blank" title=""&gt;Workling&lt;/a&gt; - easily do background work in rails, without commiting to a particular runner. comes with starling, bj and spawn runners.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/starling/starling" rel="nofollow" target="_blank" title=""&gt;Starling&lt;/a&gt; - Starling is a light-weight, persistent queue server that speaks the memcached protocol. It was originally developed for Twitter's backend.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bkeepers/qu" rel="nofollow" target="_blank" title=""&gt;qu&lt;/a&gt; - a Ruby library for queuing and processing background jobs with configurable backends.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nesquena/backburner" rel="nofollow" target="_blank" title=""&gt;backburner&lt;/a&gt; - Beanstalk background job processing made easy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeffkreeftmeijer/navvy" rel="nofollow" target="_blank" title=""&gt;Navvy&lt;/a&gt; - Simple background job processor inspired by delayed_job, but aiming for database agnosticism.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ncr/background-fu" rel="nofollow" target="_blank" title=""&gt;Background-fu&lt;/a&gt; - Running Long Background Tasks In Ruby On Rails Made Dead Simple&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/han/stalker" rel="nofollow" target="_blank" title=""&gt;stalker&lt;/a&gt; - A job queueing and background workers system using Beanstalkd. Inspired by the Minion gem.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/xing/beetle" rel="nofollow" target="_blank" title=""&gt;Beetle&lt;/a&gt; - A highly available, reliable messaging infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wireframe/backgrounded" rel="nofollow" target="_blank" title=""&gt;Backgrounded&lt;/a&gt; - Execute any ActiveRecord Model method in the background&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnstq/job_fu" rel="nofollow" target="_blank" title=""&gt;Job fu&lt;/a&gt; - Simple Asynchronous Processing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jondot/frenzy_bunnies" rel="nofollow" target="_blank" title=""&gt;frenzy_bunnies&lt;/a&gt; - RabbitMQ JRuby based workers on top of hot_bunnies&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/polleverywhere/quebert" rel="nofollow" target="_blank" title=""&gt;quebert&lt;/a&gt; - A worker queue framework built around beanstalkd&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Daemonizing"&gt;Daemonizing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ghazel/daemons" rel="nofollow" target="_blank" title=""&gt;Daemons&lt;/a&gt; - Daemons provides an easy way to wrap existing ruby scripts (for example a self-written server) to be run as a daemon and to be controlled by simple start/stop/restart commands. You can also call blocks as daemons and control them from the parent or just daemonize the current process. Besides this basic functionality, daemons offers many advanced features like exception backtracing and logging (in case your ruby script crashes) and monitoring and automatic restarting of your processes if they crash.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kennethkalmer/daemon-kit" rel="nofollow" target="_blank" title=""&gt;Daemon-kit&lt;/a&gt; - daemon-kit aims to simplify creating Ruby daemons by providing a sound application skeleton (through a generator), task specific generators (jabber bot, etc) and robust environment management code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bazaarlabs/dante" rel="nofollow" target="_blank" title=""&gt;dante&lt;/a&gt; - Turn any process into a demon.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dougal/daemon_generator" rel="nofollow" target="_blank" title=""&gt;Daemon generator&lt;/a&gt; - A plugin for creating psuedo-scheduled jobs in Ruby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mirasrael/daemons-rails" rel="nofollow" target="_blank" title=""&gt;daemons-rails&lt;/a&gt; - daemonization support for Rails 3+&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/inkel/fallen" rel="nofollow" target="_blank" title=""&gt;fallen&lt;/a&gt; - A simpler way to create Ruby fallen angels, better known as daemons&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/luckythetourist/robustthread" rel="nofollow" target="_blank" title=""&gt;Robustthread&lt;/a&gt; - Trivial module that allows you to create threads that are not killed if the process exits cleanly&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Daemon Management"&gt;Daemon Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ddollar/foreman" rel="nofollow" target="_blank" title=""&gt;foreman&lt;/a&gt; - Process manager for applications with multiple components&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/FooBarWidget/daemon_controller" rel="nofollow" target="_blank" title=""&gt;Daemon controller&lt;/a&gt; - A library for robust daemon management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mperham/lunchy" rel="nofollow" target="_blank" title=""&gt;lunchy&lt;/a&gt; - Friendly wrapper around launchctl&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/alexvollmer/daemon-spawn" rel="nofollow" target="_blank" title=""&gt;Daemon-spawn&lt;/a&gt; - With daemon-spawn you can start, stop and restart processes that run in the background. Processed are tracked by a simple PID file written to disk.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Scheduling"&gt;Scheduling&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/javan/whenever" rel="nofollow" target="_blank" title=""&gt;Whenever&lt;/a&gt; - Clean ruby syntax for writing and deploying cron jobs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmettraux/rufus-scheduler" rel="nofollow" target="_blank" title=""&gt;Rufus-scheduler&lt;/a&gt; - job scheduler for Ruby (at, cron, in and every jobs).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bvandenbos/resque-scheduler" rel="nofollow" target="_blank" title=""&gt;resque-scheduler&lt;/a&gt; - Light weight job scheduling on top of Resque. Adds methods enqueue_at/enqueue_in to schedule jobs in the future. Also supports queueing jobs on a fixed, cron-like schedule.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamwiggins/clockwork" rel="nofollow" target="_blank" title=""&gt;Clockwork&lt;/a&gt; - A scheduler process to replace cron, using a more flexible Ruby syntax running as a single long-running process. Inspired by rufus-scheduler and resque-scheduler.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/latimes/craken" rel="nofollow" target="_blank" title=""&gt;Craken&lt;/a&gt; - A Rails plugin for managing and installing rake-centric crontab files.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Swirrl/Taskit" rel="nofollow" target="_blank" title=""&gt;Taskit&lt;/a&gt; - A simple task scheduler for rails&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Code Quality"&gt;Code Quality&lt;/h2&gt;&lt;h3 id="Code Metrics"&gt;Code Metrics&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/colszowka/simplecov" rel="nofollow" target="_blank" title=""&gt;SimpleCov&lt;/a&gt; - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bbatsov/rubocop" rel="nofollow" target="_blank" title=""&gt;rubocop&lt;/a&gt; - Automatic Ruby code style checking tool. Aims to enforce the community-driven Ruby Style Guide.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsbp/rails_best_practices" rel="nofollow" target="_blank" title=""&gt;Rails best practices&lt;/a&gt; - a code metric tool for rails codes, written in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/troessner/reek" rel="nofollow" target="_blank" title=""&gt;Reek&lt;/a&gt; - Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lemurheavy/coveralls-ruby" rel="nofollow" target="_blank" title=""&gt;coveralls&lt;/a&gt; - A Ruby implementation of the Coveralls API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/square/cane" rel="nofollow" target="_blank" title=""&gt;Cane&lt;/a&gt; - Fails your build if code quality thresholds are not met&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/relevance/rcov" rel="nofollow" target="_blank" title=""&gt;Rcov&lt;/a&gt; - rcov is a code coverage tool for Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/flog" rel="nofollow" target="_blank" title=""&gt;Flog&lt;/a&gt; - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/whitesmith/rubycritic" rel="nofollow" target="_blank" title=""&gt;rubycritic&lt;/a&gt; - RubyCritic is a tool that wraps around various static analysis gems to provide a quality report of your Ruby code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/acrmp/foodcritic" rel="nofollow" target="_blank" title=""&gt;foodcritic&lt;/a&gt; - Lint tool for Chef cookbooks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/flay" rel="nofollow" target="_blank" title=""&gt;Flay&lt;/a&gt; - Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored. Making this totally rad.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/metricfu/metric_fu" rel="nofollow" target="_blank" title=""&gt;MetricFu&lt;/a&gt; - Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Code Statistics, and Rails Best Practices. (and optionally RCov)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/martinjandrews/roodi" rel="nofollow" target="_blank" title=""&gt;Roodi&lt;/a&gt; - Roodi parses your Ruby code and warns you about design issues you have based on the checks that is has configured&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/makaroni4/sandi_meter" rel="nofollow" target="_blank" title=""&gt;sandi_meter&lt;/a&gt; - Sandi Metz rules checker&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yujinakayama/guard-rubocop" rel="nofollow" target="_blank" title=""&gt;guard-rubocop&lt;/a&gt; - Guard::Rubocop automatically checks Ruby code style with RuboCop when files are modified.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codegram/pelusa" rel="nofollow" target="_blank" title=""&gt;pelusa&lt;/a&gt; - Static analysis Lint-type tool to improve your OO Ruby code&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/markbates/cover_me" rel="nofollow" target="_blank" title=""&gt;CoverMe&lt;/a&gt; - CoverMe - Code Coverage for Ruby 1.9&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/turboladen/tailor" rel="nofollow" target="_blank" title=""&gt;tailor&lt;/a&gt; - tailor parses Ruby files and measures them with some style and static analysis "rulers". Default values for the Rulers are based on a number of style guides in the Ruby community as well as what seems to be common. More on this here &lt;a href="http://wiki.github.com/turboladen/tailor" rel="nofollow" target="_blank"&gt;http://wiki.github.com/turboladen/tailor&lt;/a&gt;. tailor's goal is to help you be consistent with your code, throughout your project, whatever style that may be.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/report_card" rel="nofollow" target="_blank" title=""&gt;Report card&lt;/a&gt; - metrics and CI are for A students.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lkdjiin/coco" rel="nofollow" target="_blank" title=""&gt;coco&lt;/a&gt; - "Code coverage tool for ruby 2.0 to 2.3. Simply "require 'coco'" from rspec or unit/test. Build simple html report. Report sources that have no tests. Configurable if you need to.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bglusman/outlaw" rel="nofollow" target="_blank" title=""&gt;outlaw&lt;/a&gt; - Keep bad code out of your projects. Your idea of bad code, no one elses. Outlaw defines an example based DSL for demonstrating anti-patterns and builds a rule for each anti-pattern that it alerts the user to violations when encountered in a project's codebase during scanning. Outlaw is a work in progress and contributions, suggestions and forks are welcome. Outlaw was a personal project for Mendicant University, Session 10 in Jan '12&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Communication"&gt;Communication&lt;/h2&gt;&lt;h3 id="Asynchronous E-Mail"&gt;Asynchronous E-Mail&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/zapnap/resque_mailer" rel="nofollow" target="_blank" title=""&gt;Resque Mailer&lt;/a&gt; - Rails plugin for sending asynchronous email with ActionMailer and Resque.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cerebris/mailhopper" rel="nofollow" target="_blank" title=""&gt;Mailhopper&lt;/a&gt; - Mailhopper stores your application's emails in an ActiveRecord queue for asynchronous delivery. Use Mailhopper in combination with a delivery agent such as DelayedMailhopper.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/mail_queue" rel="nofollow" target="_blank" title=""&gt;Mail queue&lt;/a&gt; - Add mails to database for background mail sending&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="CRM Apps"&gt;CRM Apps&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/fatfreecrm/fat_free_crm" rel="nofollow" target="_blank" title=""&gt;Fat free crm&lt;/a&gt; - Ruby on Rails CRM platform for Web 2.0 and beyond&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="E-Mail Preview"&gt;E-Mail Preview&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sj26/mailcatcher" rel="nofollow" target="_blank" title=""&gt;MailCatcher&lt;/a&gt; - MailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface. Run mailcatcher, set your favourite app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, then check out &lt;a href="http://127.0.0.1:1080" rel="nofollow" target="_blank"&gt;http://127.0.0.1:1080&lt;/a&gt; to see the mail.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/letter_opener" rel="nofollow" target="_blank" title=""&gt;Letter Opener&lt;/a&gt; - When mail is sent from your application, Letter Opener will open a preview in the browser instead of sending.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/37signals/mail_view" rel="nofollow" target="_blank" title=""&gt;mail_view&lt;/a&gt; - Visual email testing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/glebm/rails_email_preview" rel="nofollow" target="_blank" title=""&gt;Rails Email Preview&lt;/a&gt; - A Rails Engine to preview plain text and html email in your browser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pboling/sanitize_email" rel="nofollow" target="_blank" title=""&gt;sanitize_email&lt;/a&gt; - Email Condom for your Ruby Server. In Rails, Sinatra, et al, or simply the mail gem: Aids in development, testing, qa, and production troubleshooting of email issues without worrying that emails will get sent to actual live addresses.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="E-Mail Processing"&gt;E-Mail Processing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/griddler" rel="nofollow" target="_blank" title=""&gt;griddler&lt;/a&gt; - SendGrid Parse API client Rails Engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/titanous/mailman" rel="nofollow" target="_blank" title=""&gt;Mailman&lt;/a&gt; - Mailman makes it easy to process incoming emails with a simple routing DSL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/look/fetcher" rel="nofollow" target="_blank" title=""&gt;Fetcher&lt;/a&gt; - download email from POP3 or IMAP and do stuff with it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tpitale/mail_room" rel="nofollow" target="_blank" title=""&gt;mail_room&lt;/a&gt; - mail_room will proxy email (gmail) from IMAP to a delivery method&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mendicant-university/newman" rel="nofollow" target="_blank" title=""&gt;newman&lt;/a&gt; - A microframework for mail-centric applications&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="E-Mail Sending"&gt;E-Mail Sending&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/rails" rel="nofollow" target="_blank" title=""&gt;Action Mailer&lt;/a&gt; - Email on Rails. Compose, deliver, receive, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mikel/mail" rel="nofollow" target="_blank" title=""&gt;Mail&lt;/a&gt; - A really Ruby Mail handler.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benprew/pony" rel="nofollow" target="_blank" title=""&gt;Pony&lt;/a&gt; - Send email in one command: Pony.mail(:to =&amp;gt; 'someone@example.com', :body =&amp;gt; 'hello')&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mikel/tmail" rel="nofollow" target="_blank" title=""&gt;Tmail&lt;/a&gt; - TMail is a Ruby-based mail handler. It allows you to compose stadards compliant emails in a very Ruby-way.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/PavelTyk/sendgrid-rails" rel="nofollow" target="_blank" title=""&gt;sendgrid-rails&lt;/a&gt; - Gem to extend ActionMailer with SendGrid API support&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Exchange Clients"&gt;Exchange Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/zenchild/Viewpoint" rel="nofollow" target="_blank" title=""&gt;viewpoint&lt;/a&gt; - A Ruby client access library for Microsoft Exchange Web Services (EWS). Examples can be found here: &lt;a href="http://distributed-frostbite.blogspot.com" rel="nofollow" target="_blank"&gt;http://distributed-frostbite.blogspot.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;rexchange&lt;/a&gt; - Connect, browse, and iterate through folders and messages on an Exchange Server&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Forum Systems"&gt;Forum Systems&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/radar/forem" rel="nofollow" target="_blank" title=""&gt;forem&lt;/a&gt; - The best Rails 3 and Rails 4 forum engine. Ever.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/courtenay/altered_beast" rel="nofollow" target="_blank" title=""&gt;Altered beast&lt;/a&gt; - Ground-up rewrite of Beast, a Ruby on Rails forum.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jayroh/thredded" rel="nofollow" target="_blank" title=""&gt;thredded&lt;/a&gt; - A rails messageboard engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gitt/forum_monster" rel="nofollow" target="_blank" title=""&gt;forum_monster&lt;/a&gt; - A Simple Rails 3 Forum Generator&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;engagecsm&lt;/a&gt; - Engage! is a Rails gem that adds a user support forum to your Rails application.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Inline CSS for E-Mail"&gt;Inline CSS for E-Mail&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/alexdunae/premailer" rel="nofollow" target="_blank" title=""&gt;premailer&lt;/a&gt; - Improve the rendering of HTML emails by making CSS inline, converting links and warning about unsupported code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mange/roadie" rel="nofollow" target="_blank" title=""&gt;Roadie&lt;/a&gt; - Roadie tries to make sending HTML emails a little less painful by inlining stylesheets and rewriting relative URLs for you.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/purify/mail_style" rel="nofollow" target="_blank" title=""&gt;mail_style&lt;/a&gt; - Making HTML emails a little less painful. Writes css inline and corrects image urls.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/premailer/actionmailer_inline_css" rel="nofollow" target="_blank" title=""&gt;actionmailer_inline_css&lt;/a&gt; - Module for ActionMailer to improve the rendering of HTML emails by using the 'premailer' gem, which inlines CSS and makes relative links absolute.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="IRC Bots"&gt;IRC Bots&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/cinchrb/cinch" rel="nofollow" target="_blank" title=""&gt;Cinch&lt;/a&gt; - A simple, friendly DSL for creating IRC bots&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/RISCfuture/autumn" rel="nofollow" target="_blank" title=""&gt;Autumn&lt;/a&gt; - Autumn is a simple and modular irc framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vangberg/isaac" rel="nofollow" target="_blank" title=""&gt;Isaac&lt;/a&gt; - Small DSL for writing IRC bots.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jsn/rbot" rel="nofollow" target="_blank" title=""&gt;Rbot&lt;/a&gt; - A modular ruby IRC bot specifically designed for ease of extension via plugins.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mose/cogbot" rel="nofollow" target="_blank" title=""&gt;cogbot&lt;/a&gt; - Irc bot based on Cinch&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;irc-qik-bot&lt;/a&gt; - pure socket no framework :: IRC Qik Bot ~ its a babbling IRC Bot very quick to setup and act ;) aiming to be intelligent... Current Features: &lt;a href="https://github.com/abhishekkr/irc-qik-bot/blob/master/README" rel="nofollow" target="_blank"&gt;https://github.com/abhishekkr/irc-qik-bot/blob/master/README&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Content Management &amp;amp; Blogging"&gt;Content Management &amp;amp; Blogging&lt;/h2&gt;&lt;h3 id="Blog Engines"&gt;Blog Engines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/imathis/octopress" rel="nofollow" target="_blank" title=""&gt;Octopress&lt;/a&gt; - Octopress is an obsessively designed framework for Jekyll blogging. It’s easy to configure and easy to deploy. Sweet huh?&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fdv/publify" rel="nofollow" target="_blank" title=""&gt;Publify&lt;/a&gt; - Since Typo has been in existence since March 2005, it is likely the oldest blogging platform in Rails. It has a full set of features you would expect from such an engine, which include powerful SEO capabilities, full themes, and plug-in extensions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cloudhead/toto" rel="nofollow" target="_blank" title=""&gt;Toto&lt;/a&gt; - the tiniest blog-engine in Oz.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/KatanaCode/blogit" rel="nofollow" target="_blank" title=""&gt;blogit&lt;/a&gt; - Add a blog to your Rails application in minutes with this mountable Rails Engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/colszowka/serious" rel="nofollow" target="_blank" title=""&gt;Serious&lt;/a&gt; - Serious is a simple, file-driven blog engine inspired by toto and driven by sinatra with an emphasis on easy setup&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/carpeliam/governor" rel="nofollow" target="_blank" title=""&gt;governor&lt;/a&gt; - Because Blogojevich would be too tough to remember. It's a pluggable blogging system for Rails 3.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Content Management"&gt;Content Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/refinery/refinerycms" rel="nofollow" target="_blank" title=""&gt;Refinery CMS&lt;/a&gt; - A Ruby on Rails CMS that supports Rails 4.2. It's developer friendly and easy to extend.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/browsermedia/browsercms" rel="nofollow" target="_blank" title=""&gt;BrowserCMS&lt;/a&gt; - BrowserCMS is a general purpose, open source Web Content Management System (CMS) that supports Ruby on Rails v3.2. It can be used as a standalone CMS, added to existing Rails projects or extended using Rails Engines.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/locomotivecms/engine" rel="nofollow" target="_blank" title=""&gt;Locomotive&lt;/a&gt; - LocomotiveCMS is a next generation CMS system with sexy admin tools, liquid templating, and inline editing powered by mongodb and rails 3.2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/comfy/comfortable-mexican-sofa" rel="nofollow" target="_blank" title=""&gt;Comfortable Mexican Sofa&lt;/a&gt; - ComfortableMexicanSofa is a powerful Rails 4 CMS Engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/radiant/radiant" rel="nofollow" target="_blank" title=""&gt;Radiant&lt;/a&gt; - Radiant is a simple and powerful publishing system designed for small teams. It is built with Rails and is similar to Textpattern or MovableType, but is a general purpose content managment system--not merely a blogging engine.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/svenfuchs/adva_cms" rel="nofollow" target="_blank" title=""&gt;Adva cms&lt;/a&gt; - cutting edge cms, blog, wiki, forum ...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gma/nesta" rel="nofollow" target="_blank" title=""&gt;Nesta&lt;/a&gt; - Nesta is a lightweight Content Management System, written in Ruby using the Sinatra web framework. Nesta has the simplicity of a static site generator, but (being a fully fledged Rack application) allows you to serve dynamic content on demand. Content is stored on disk in plain text files (there is no database). Edit your content in a text editor and keep it under version control (most people use git, but any version control system will do fine). Implementing your site's design is easy, but Nesta also has a small selection of themes to choose from.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/magiclabs/alchemy_cms" rel="nofollow" target="_blank" title=""&gt;Alchemy CMS&lt;/a&gt; - Alchemy is a powerful, userfriendly and flexible Rails 4 CMS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DigitPaint/skyline" rel="nofollow" target="_blank" title=""&gt;Skyline&lt;/a&gt; - The new Ruby on Rails open source standard in content management&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zena/zena" rel="nofollow" target="_blank" title=""&gt;Zena&lt;/a&gt; - zena is a Ruby on Rails CMS (content managment system) with a focus on usability, ease of customization and web 2.0 goodness (application like behaviour).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cantierecreativo/railsyardcms" rel="nofollow" target="_blank" title=""&gt;railsyardcms&lt;/a&gt; - Railsyard - One Ruby on Rails CMS to rule them all!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/knewter/ansuz" rel="nofollow" target="_blank" title=""&gt;Ansuz&lt;/a&gt; - Open source Rails based content management that works.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trevorturk/static" rel="nofollow" target="_blank" title=""&gt;Static&lt;/a&gt; - Static.com Cloud Command Line Client&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thinkdry/blank-application" rel="nofollow" target="_blank" title=""&gt;Blank-application&lt;/a&gt; - Ruby/Rails Content Management Framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quickleft/regulate" rel="nofollow" target="_blank" title=""&gt;Regulate&lt;/a&gt; - Rails 3 engine that provides a Git backed CMS that allows for an admin to define editable regions in a page view.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/spoiledmilk/casein" rel="nofollow" target="_blank" title=""&gt;Casein&lt;/a&gt; - A lightweight CMS toolkit for Ruby on Rails, based on Bootstrap.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/javan/copy" rel="nofollow" target="_blank" title=""&gt;Copy&lt;/a&gt; - Serves mostly static pages with blocks of editable copy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mcasimir/fullstack-admin" rel="nofollow" target="_blank" title=""&gt;fullstack-cms&lt;/a&gt; - CMS system built on fullstack&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/atd/station" rel="nofollow" target="_blank" title=""&gt;Station&lt;/a&gt; - I like Rails but I also hate Rails, and sometimes I'm not making a web-app, and yet I still need a lot of the same plumbing for every app I make. This is an attempt to standardize that plumbing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fabiokr/manageable_content" rel="nofollow" target="_blank" title=""&gt;manageable_content&lt;/a&gt; - A content management framework for Rails (compatible with 3.1 and 3.2)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puffer/pufer_pages" rel="nofollow" target="_blank" title=""&gt;puffer_pages&lt;/a&gt; - Puffer pages is integratable rails CMS with puffer admin interface&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Static Website Generation"&gt;Static Website Generation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mojombo/jekyll" rel="nofollow" target="_blank" title=""&gt;Jekyll&lt;/a&gt; - Jekyll is a simple, blog aware, static site generator.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/middleman/middleman" rel="nofollow" target="_blank" title=""&gt;Middleman&lt;/a&gt; - A static site generator. Provides dozens of templating languages (Haml, Sass, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache busting, Yaml data (and more) an easy part of your development cycle.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/high_voltage" rel="nofollow" target="_blank" title=""&gt;high_voltage&lt;/a&gt; - Fire in the disco. Fire in the ... taco bell.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nanoc/nanoc" rel="nofollow" target="_blank" title=""&gt;nanoc&lt;/a&gt; - Nanoc is a static-site generator focused on flexibility. It transforms content from a format such as Markdown or AsciiDoc into another format, usually HTML, and lays out pages consistently to retain the site’s look and feel throughout. Static sites built with Nanoc can be deployed to any web server.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/winton/stasis" rel="nofollow" target="_blank" title=""&gt;stasis&lt;/a&gt; - Stasis is a dynamic framework for static sites.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruhoh/ruhoh.rb" rel="nofollow" target="_blank" title=""&gt;ruhoh&lt;/a&gt; - Ruhoh is a Universal API for your static blog.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/awestruct/awestruct" rel="nofollow" target="_blank" title=""&gt;awestruct&lt;/a&gt; - Awestruct is a static site baking and publishing tool. It supports an extensive list of both templating and markup languages via Tilt (Haml, Slim, AsciiDoc, Markdown, Sass via Compass, etc), provides mobile-first layout and styling via Bootstrap or Foundation, offers a variety of deployment options (rsync, git, S3), handles site optimizations (minification, compression, cache busting), includes built-in extensions such as blog post management and is highly extensible.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/blahed/frank" rel="nofollow" target="_blank" title=""&gt;Frank&lt;/a&gt; - Rapidly develop static sites using any supported templating language&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/TwP/webby" rel="nofollow" target="_blank" title=""&gt;Webby&lt;/a&gt; - &lt;em&gt;Webby&lt;/em&gt; is a fantastic little website management system. It would be called a &lt;em&gt;content management system&lt;/em&gt; if it were a bigger kid. But, it's just a runt with a special knack for transforming text. And that's really all it does - manages the legwork of turning text into something else, an &lt;em&gt;ASCII Alchemist&lt;/em&gt; if you will. Webby works by combining the contents of a &lt;em&gt;page&lt;/em&gt; with a &lt;em&gt;layout&lt;/em&gt; to produce HTML. The layout contains everything common to all the pages - HTML headers, navigation menu, footer, etc. - and the page contains just the information for that page. You can use your favorite markup language to write your pages; Webby supports quite a few. Install Webby and try it out!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/staticmatic/staticmatic" rel="nofollow" target="_blank" title=""&gt;StaticMatic&lt;/a&gt; - Lightweight Static Site Framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benschwarz/bonsai" rel="nofollow" target="_blank" title=""&gt;Bonsai&lt;/a&gt; - A static site generator that uses the best toolset available&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sstephenson/brochure" rel="nofollow" target="_blank" title=""&gt;brochure&lt;/a&gt; - A Rack application for serving static sites with ERB templates.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gettalong/webgen" rel="nofollow" target="_blank" title=""&gt;webgen&lt;/a&gt; - webgen is used to generate static websites from templates and content files (which can be written in a markup language). It can generate dynamic content like menus on the fly and comes with many powerful extensions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sandal/korma" rel="nofollow" target="_blank" title=""&gt;Korma&lt;/a&gt; - A static site generator for bloggers with multiple author support&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Wiki Apps"&gt;Wiki Apps&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/gollum/gollum" rel="nofollow" target="_blank" title=""&gt;Gollum&lt;/a&gt; - A simple, Git-powered wiki with a sweet API and local frontend.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sr/git-wiki" rel="nofollow" target="_blank" title=""&gt;Git-wiki&lt;/a&gt; - A quick &amp;amp; dirty git-powered Sinatra wiki&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/parasew/instiki" rel="nofollow" target="_blank" title=""&gt;Instiki&lt;/a&gt; - Instiki is a Wiki Clone written in Ruby that ships with an embedded webserver. You can setup up an Instiki in just a few steps. Possibly the simplest wiki setup ever.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/alno/irwi" rel="nofollow" target="_blank" title=""&gt;irwi&lt;/a&gt; - Irwi is Ruby on Rails plugin which adds wiki functionality to your application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/minad/olelo" rel="nofollow" target="_blank" title=""&gt;Olelo&lt;/a&gt; - Olelo is a git-based wiki which supports many markup languages, tags, embedded TeX and much more. It can be extended through plugins.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/danchoi/soywiki" rel="nofollow" target="_blank" title=""&gt;soywiki&lt;/a&gt; - A personal and collaborative wiki for Vim users&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/queso/signal-wiki" rel="nofollow" target="_blank" title=""&gt;Signal-wiki&lt;/a&gt; - The easy to use rails wiki&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/meekish/collective" rel="nofollow" target="_blank" title=""&gt;Collective&lt;/a&gt; - A no-frills Merb wiki extracted from wiki.merbivore.com&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="CSS"&gt;CSS&lt;/h2&gt;&lt;h3 id="CSS with Ruby"&gt;CSS with Ruby&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nex3/sass" rel="nofollow" target="_blank" title=""&gt;Sass&lt;/a&gt; - Sass makes CSS fun again. Sass is an extension of CSS, adding nested rules, variables, mixins, selector inheritance, and more. It's translated to well-formatted, standard CSS using the command line tool or a web-framework plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/sass-rails" rel="nofollow" target="_blank" title=""&gt;sass-rails&lt;/a&gt; - Sass adapter for the Rails asset pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/twbs/bootstrap-sass" rel="nofollow" target="_blank" title=""&gt;bootstrap-sass&lt;/a&gt; - bootstrap-sass is a Sass-powered version of Bootstrap 3, ready to drop right into your Sass powered applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chriseppstein/compass" rel="nofollow" target="_blank" title=""&gt;Compass&lt;/a&gt; - Compass is a Sass-based Stylesheet Framework that streamlines the creation and maintenance of CSS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/bourbon" rel="nofollow" target="_blank" title=""&gt;bourbon&lt;/a&gt; - Bourbon is a library of pure Sass mixins that are designed to be simple and easy to use. No configuration required. The mixins aim to be as vanilla as possible, meaning they should be as close to the original CSS syntax as possible.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seyhunak/twitter-bootstrap-rails" rel="nofollow" target="_blank" title=""&gt;twitter-bootstrap-rails&lt;/a&gt; - twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails 4, 3.x Asset Pipeline&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cloudhead/less" rel="nofollow" target="_blank" title=""&gt;Less&lt;/a&gt; - Invoke the Less CSS compiler from Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/aanand/deadweight" rel="nofollow" target="_blank" title=""&gt;Deadweight&lt;/a&gt; - A coverage tool for finding unused CSS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/anjlab/bootstrap-rails" rel="nofollow" target="_blank" title=""&gt;anjlab-bootstrap-rails&lt;/a&gt; - Bootstrap CSS (with Sass flavour) and JS toolkits for Rails 3 projects&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cowboyd/less.rb" rel="nofollow" target="_blank" title=""&gt;less.rb&lt;/a&gt; - Leaner CSS, in your browser or Ruby (via less.js).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/scottvrosenthal/twitter-bootswatch-rails" rel="nofollow" target="_blank" title=""&gt;twitter-bootswatch-rails&lt;/a&gt; - twitter-bootswatch-rails gem integrates TWBS Bootstrap for Rails Asset Pipeline with less-rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lucasmazza/ruby-stylus" rel="nofollow" target="_blank" title=""&gt;stylus&lt;/a&gt; - Bridge library to compile .styl stylesheets from ruby code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railslove/smurfville" rel="nofollow" target="_blank" title=""&gt;smurfville&lt;/a&gt; - Smurfville is the home of SMURF, a new and modular approach to Rails frontend development based on the SMACSS approach for CSS. This gem provides a set of tools that help following this approach.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Font-Face Servers"&gt;Font-Face Servers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/garrickvanburen/Fontue" rel="nofollow" target="_blank" title=""&gt;Fontue&lt;/a&gt; - Fontue is a Rack-based, open-source, web font server built for Kernest.com. This project also includes font optimization scripts for use with FontForge&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/fistface" rel="nofollow" target="_blank" title=""&gt;Fistface&lt;/a&gt; - Pow. Right in the kisser.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Data Persistence"&gt;Data Persistence&lt;/h2&gt;&lt;h3 id="Amazon DynamoDB"&gt;Amazon DynamoDB&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Veraticus/Dynamoid" rel="nofollow" target="_blank" title=""&gt;dynamoid&lt;/a&gt; - Dynamoid is an ORM for Amazon's DynamoDB that supports offline development, associations, querying, and everything else you'd expect from an ActiveRecord-style replacement.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ananthakumaran/fake_dynamo" rel="nofollow" target="_blank" title=""&gt;fake_dynamo&lt;/a&gt; - local hosted, inmemory fake dynamodb&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="CouchDB Clients"&gt;CouchDB Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/couchrest/couchrest" rel="nofollow" target="_blank" title=""&gt;Couchrest&lt;/a&gt; - CouchRest provides a simple interface on top of CouchDB's RESTful HTTP API, as well as including some utility scripts for managing views and attachments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/couchrest/couchrest_model" rel="nofollow" target="_blank" title=""&gt;CouchRest Model&lt;/a&gt; - CouchRest Model provides aditional features to the standard CouchRest Document class such as properties, view designs, associations, callbacks, typecasting and validations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/langalex/couch_potato" rel="nofollow" target="_blank" title=""&gt;Couch potato&lt;/a&gt; - Ruby persistence layer for CouchDB&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hpoydar/couchrest-rails" rel="nofollow" target="_blank" title=""&gt;Couchrest-rails&lt;/a&gt; - A Rails plugin for connecting to and working with CouchDB via CouchRest&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peritor/simply_stored" rel="nofollow" target="_blank" title=""&gt;SimplyStored&lt;/a&gt; - Convenience layer for CouchDB on top of CouchPotato.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/georgepalmer/couch_foo" rel="nofollow" target="_blank" title=""&gt;Couch foo&lt;/a&gt; - CouchFoo provides an ActiveRecord API interface to CouchDB&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulcarey/relaxdb" rel="nofollow" target="_blank" title=""&gt;Relaxdb&lt;/a&gt; - RelaxDB provides a simple interface to CouchDB&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulca/stuffing" rel="nofollow" target="_blank" title=""&gt;Stuffing&lt;/a&gt; - A Rails plugin to read and write CouchDB documents via Activerecord&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="CSV Parsers"&gt;CSV Parsers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;FasterCSV&lt;/a&gt; - FasterCSV is intended as a complete replacement to the CSV standard library. It is significantly faster and smaller while still being pure Ruby code. It also strives for a better interface.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tilo/smarter_csv" rel="nofollow" target="_blank" title=""&gt;smarter_csv&lt;/a&gt; - Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes, with optional features for processing large files in parallel, embedded comments, unusual field- and record-separators, flexible mapping of CSV-headers to Hash-keys&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/diogob/postgres-copy" rel="nofollow" target="_blank" title=""&gt;postgres-copy&lt;/a&gt; - Now you can use the super fast COPY for import/export data directly from your AR models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evan/ccsv" rel="nofollow" target="_blank" title=""&gt;ccsv&lt;/a&gt; - Ruby CSV parser gem, written in pure C.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/scottwillson/tabular" rel="nofollow" target="_blank" title=""&gt;Tabular&lt;/a&gt; - Tabular is a Ruby library for reading, writing, and manipulating CSV, tab-delimited and Excel data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Data Migration"&gt;Data Migration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ricardochimal/taps" rel="nofollow" target="_blank" title=""&gt;taps&lt;/a&gt; - A simple database agnostic import/export app to transfer data to/from a remote database.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/continuum/active_importer" rel="nofollow" target="_blank" title=""&gt;active_importer&lt;/a&gt; - Import tabular data from spreadsheets or similar sources into data models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tardate/mysql2postgresql" rel="nofollow" target="_blank" title=""&gt;mysql2psql&lt;/a&gt; - It can create postgresql dump from mysql database or directly load data from mysql to postgresql (at about 100 000 records per minute). Translates most data types and indexes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="MongoDB Clients"&gt;MongoDB Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mongodb/mongo-ruby-driver" rel="nofollow" target="_blank" title=""&gt;Mongo Ruby Driver&lt;/a&gt; - A Ruby driver for MongoDB&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/mongomapper" rel="nofollow" target="_blank" title=""&gt;Mongomapper&lt;/a&gt; - MongoMapper is a Object-Document Mapper for Ruby and Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mongoid/mongoid" rel="nofollow" target="_blank" title=""&gt;Mongoid&lt;/a&gt; - Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jgaskins/perpetuity" rel="nofollow" target="_blank" title=""&gt;perpetuity&lt;/a&gt; - Persistence layer for Ruby objects&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Object-relational mapping"&gt;Object-relational mapping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/rails" rel="nofollow" target="_blank" title=""&gt;Active Record&lt;/a&gt; - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ianwhite/orm_adapter" rel="nofollow" target="_blank" title=""&gt;ORM Adapter&lt;/a&gt; - Provides a single point of entry for using basic features of ruby ORMs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeremyevans/sequel" rel="nofollow" target="_blank" title=""&gt;Sequel&lt;/a&gt; - The Database Toolkit for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/datamapper/dm-core" rel="nofollow" target="_blank" title=""&gt;DataMapper&lt;/a&gt; - DataMapper core library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ernie/squeel" rel="nofollow" target="_blank" title=""&gt;squeel&lt;/a&gt; - Squeel unlocks the power of Arel in your Rails application with a handy block-based syntax. You can write subqueries, access named functions provided by your RDBMS, and more, all without writing SQL strings. Supporting Rails 3 and 4.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rom-rb/rom" rel="nofollow" target="_blank" title=""&gt;Ruby Object Mapper&lt;/a&gt; - Persistence and mapping toolkit for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;og&lt;/a&gt; - Object Graph (Og) is a state of the art ORM system. Og serializes standard Ruby objects to Mysql, Postgres, Sqlite, KirbyBase, Filesystem and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Redis Clients"&gt;Redis Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/redis/redis-rb" rel="nofollow" target="_blank" title=""&gt;Redis Ruby&lt;/a&gt; - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface. It features thread-safety, client-side sharding, pipelining, and an obsession for performance.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jodosha/redis-store" rel="nofollow" target="_blank" title=""&gt;Redis Store&lt;/a&gt; - Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nateware/redis-objects" rel="nofollow" target="_blank" title=""&gt;Redis Objects&lt;/a&gt; - Map Redis types directly to Ruby objects. Works with any class or ORM.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/soveran/ohm" rel="nofollow" target="_blank" title=""&gt;Ohm&lt;/a&gt; - Ohm is a library that allows to store an object in Redis, a persistent key-value database. It has very good performance.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/german/redis_orm" rel="nofollow" target="_blank" title=""&gt;redis_orm&lt;/a&gt; - ORM for Redis (advanced key-value storage) with ActiveRecord API&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="SQL Database Adapters"&gt;SQL Database Adapters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;pg&lt;/a&gt; - Pg is the Ruby interface to the {PostgreSQL RDBMS}[&lt;a href="http://www.postgresql.org/" rel="nofollow" target="_blank"&gt;http://www.postgresql.org/&lt;/a&gt;]. It works with {PostgreSQL 8.4 and later}[&lt;a href="http://www.postgresql.org/support/versioning/" rel="nofollow" target="_blank"&gt;http://www.postgresql.org/support/versioning/&lt;/a&gt;]. A small example usage: #!/usr/bin/env ruby require 'pg' # Output a table of current connections to the DB conn = PG.connect( dbname: 'sales' ) conn.exec( "SELECT * FROM pg_stat_activity" ) do |result| puts " PID | User | Query" result.each do |row| puts " %7d | %-16s | %s " % row.values_at('procpid', 'usename', 'current_query') end end&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brianmario/mysql2" rel="nofollow" target="_blank" title=""&gt;mysql2&lt;/a&gt; - A simple, fast Mysql library for Ruby, binding to libmysql&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/luislavena/sqlite3-ruby" rel="nofollow" target="_blank" title=""&gt;sqlite3-ruby&lt;/a&gt; - This module allows Ruby programs to interface with the SQLite3 database engine (&lt;a href="http://www.sqlite.org" rel="nofollow" target="_blank"&gt;http://www.sqlite.org&lt;/a&gt;). You must have the SQLite engine installed in order to build this module. Note that this module is NOT compatible with SQLite 2.x.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;jdbc-mysql&lt;/a&gt; - Install this gem &lt;code&gt;require 'jdbc/mysql'&lt;/code&gt; and invoke &lt;code&gt;Jdbc::MySQL.load_driver&lt;/code&gt; within JRuby to load the driver.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jruby/activerecord-jdbc-adapter" rel="nofollow" target="_blank" title=""&gt;jdbc-postgres&lt;/a&gt; - Install this gem &lt;code&gt;require 'jdbc/postgres'&lt;/code&gt; and invoke &lt;code&gt;Jdbc::Postgres.load_driver&lt;/code&gt; within JRuby to load the driver.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kubo/ruby-oci8" rel="nofollow" target="_blank" title=""&gt;ruby-oci8&lt;/a&gt; - ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available with Oracle 10g or later including Oracle Instant Client.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tmtm/ruby-mysql" rel="nofollow" target="_blank" title=""&gt;ruby-mysql&lt;/a&gt; - This is MySQL connector. pure Ruby version&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/oldmoe/mysqlplus" rel="nofollow" target="_blank" title=""&gt;mysqlplus&lt;/a&gt; - Enhanced Ruby MySQL driver&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;postgres-pr&lt;/a&gt; - A pure Ruby interface to the PostgreSQL (&amp;gt;= 7.4) database&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/afair/postgresql_cursor" rel="nofollow" target="_blank" title=""&gt;postgresql_cursor&lt;/a&gt; - PostgreSQL Cursor is an extension to the ActiveRecord PostgreSQLAdapter for very large result sets. It provides a cursor open/fetch/close interface to access data without loading all rows into memory, and instead loads the result rows in "chunks" (default of 1_000 rows), buffers them, and returns the rows one at a time.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Developer Tools"&gt;Developer Tools&lt;/h2&gt;&lt;h3 id="Benchmarking"&gt;Benchmarking&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/change/method_profiler" rel="nofollow" target="_blank" title=""&gt;method_profiler&lt;/a&gt; - MethodProfiler observes your code and generates reports about the methods that were run and how long they took.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;rbench&lt;/a&gt; - Library for generating nice ruby-benchmarks&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;benchmarkable&lt;/a&gt; - Benchmarkable allows monitoring the performance of instance methods and reporting those in csv format&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="CLI Option Parsers"&gt;CLI Option Parsers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/JEG2/highline" rel="nofollow" target="_blank" title=""&gt;highline&lt;/a&gt; - A high-level IO library that provides validation, type conversion, and more for command-line interfaces. HighLine also includes a complete menu system that can crank out anything from simple list selection to complete shells with just minutes of work.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/injekt/slop" rel="nofollow" target="_blank" title=""&gt;Slop&lt;/a&gt; - A DSL for gathering options and parsing command line flags&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Trollop&lt;/a&gt; - Trollop is a commandline option parser for Ruby that just gets out of your way. One line of code per option is all you need to write. For that, you get a nice automatically-generated help page, robust option parsing, command subcompletion, and sensible defaults for everything you don't specify.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/cocaine" rel="nofollow" target="_blank" title=""&gt;cocaine&lt;/a&gt; - A small library for doing (command) lines&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/opscode/mixlib-cli" rel="nofollow" target="_blank" title=""&gt;mixlib-cli&lt;/a&gt; - A simple mixin for CLI interfaces, including option parsing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/davetron5000/gli" rel="nofollow" target="_blank" title=""&gt;gli&lt;/a&gt; - Build command-suite CLI apps that are awesome. Bootstrap your app, add commands, options and documentation while maintaining a well-tested idiomatic command-line app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/visionmedia/commander" rel="nofollow" target="_blank" title=""&gt;commander&lt;/a&gt; - The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mdub/clamp" rel="nofollow" target="_blank" title=""&gt;clamp&lt;/a&gt; - Clamp provides an object-model for command-line utilities. It handles parsing of command-line options, and generation of usage help.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/choice" rel="nofollow" target="_blank" title=""&gt;Choice&lt;/a&gt; - Choice is a simple little gem for easily defining and parsing command line options with a friendly DSL.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/davetron5000/methadone" rel="nofollow" target="_blank" title=""&gt;methadone&lt;/a&gt; - Methadone provides a lot of small but useful features for developing a command-line app, including an opinionated bootstrapping process, some helpful cucumber steps, and some classes to bridge logging and output into a simple, unified, interface&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/docopt/docopt.rb" rel="nofollow" target="_blank" title=""&gt;docopt&lt;/a&gt; - Isn't it awesome how &lt;code&gt;optparse&lt;/code&gt; and other option parsers generate help and usage-messages based on your code?! Hell no! You know what's awesome? It's when the option parser &lt;em&gt;is&lt;/em&gt; generated based on the help and usage-message that you write in a docstring! That's what docopt does!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/soveran/clap" rel="nofollow" target="_blank" title=""&gt;clap&lt;/a&gt; - Clap is a small library that can be bundled with your command line application. It covers the simple case of executing code based on the flags or parameters passed.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Optitron&lt;/a&gt; - Sensible options parsing&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;config_parser&lt;/a&gt; - Parse command-line options into a configuration hash&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;OptionParser&lt;/a&gt; - A flexible command line option parser.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;getoptions&lt;/a&gt; - Yet another command line option parser in Ruby, based on Perl's Getopt::Long module.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="CLI Progress Bars"&gt;CLI Progress Bars&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jfelchner/ruby-progressbar" rel="nofollow" target="_blank" title=""&gt;ruby-progressbar&lt;/a&gt; - Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby. The output can be customized with a flexible formatting system including: percentage, bars of various formats, elapsed time and estimated time remaining.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeffkreeftmeijer/fuubar" rel="nofollow" target="_blank" title=""&gt;fuubar&lt;/a&gt; - the instafailing RSpec progress bar formatter&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paul/progress_bar" rel="nofollow" target="_blank" title=""&gt;progress_bar&lt;/a&gt; - Give people feedback about long-running tasks without overloading them with information: Use a progress bar, like Curl or Wget!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peleteiro/progressbar" rel="nofollow" target="_blank" title=""&gt;ProgressBar&lt;/a&gt; - Ruby/ProgressBar is a text progress bar library for Ruby. It can indicate progress with percentage, a progress bar, and estimated remaining time.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/toy/progress" rel="nofollow" target="_blank" title=""&gt;progress&lt;/a&gt; - Show progress of long running tasks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/busyloop/powerbar" rel="nofollow" target="_blank" title=""&gt;powerbar&lt;/a&gt; - The last progressbar-library you'll ever need&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/prydonius/spinning_cursor" rel="nofollow" target="_blank" title=""&gt;spinning_cursor&lt;/a&gt; - Spinning Cursor is a flexible DSL that allows you to easily produce a customizable waiting/loading message for your Ruby command line program. Beautifully keep your users informed with what your program is doing when a more complex solution, such as a progress bar, doesn't fit your needs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;progress-meter&lt;/a&gt; - Print progress reports for loops, like the Smart::Comments package in perl.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Concurrent Processing"&gt;Concurrent Processing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/eventmachine/eventmachine" rel="nofollow" target="_blank" title=""&gt;EventMachine&lt;/a&gt; - EventMachine implements a fast, single-threaded engine for arbitrary network communications. It's extremely easy to use in Ruby. EventMachine wraps all interactions with IP sockets, allowing programs to concentrate on the implementation of network protocols. It can be used to create both network servers and clients. To create a server or client, a Ruby program only needs to specify the IP address and port, and provide a Module that implements the communications protocol. Implementations of several standard network protocols are provided with the package, primarily to serve as examples. The real goal of EventMachine is to enable programs to easily interface with other programs using TCP/IP, especially if custom protocols are required.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/celluloid/celluloid" rel="nofollow" target="_blank" title=""&gt;Celluloid&lt;/a&gt; - Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tarcieri/cool.io" rel="nofollow" target="_blank" title=""&gt;Cool.io&lt;/a&gt; - Cool.io provides a high performance event framework for Ruby which uses the libev C library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chadrem/workers" rel="nofollow" target="_blank" title=""&gt;workers&lt;/a&gt; - A Ruby gem for performing work in background threads.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/larrytheliquid/dataflow" rel="nofollow" target="_blank" title=""&gt;dataflow&lt;/a&gt; - Dataflow concurrency for Ruby (inspired by the Oz language)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chadrem/tribe" rel="nofollow" target="_blank" title=""&gt;tribe&lt;/a&gt; - Actors based concurrency library for Ruby.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Configuration Management"&gt;Configuration Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/bkeepers/dotenv" rel="nofollow" target="_blank" title=""&gt;dotenv&lt;/a&gt; - Loads environment variables from &lt;code&gt;.env&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bkeepers/dotenv" rel="nofollow" target="_blank" title=""&gt;dotenv-rails&lt;/a&gt; - Autoload dotenv in Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/laserlemon/figaro" rel="nofollow" target="_blank" title=""&gt;Figaro&lt;/a&gt; - Simple, Heroku-friendly Rails app configuration using ENV and a single YAML file&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/binarylogic/settingslogic" rel="nofollow" target="_blank" title=""&gt;settingslogic&lt;/a&gt; - A simple and straightforward settings solution that uses an ERB enabled YAML file and a singleton design pattern.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsjedi/rails_config" rel="nofollow" target="_blank" title=""&gt;rails_config&lt;/a&gt; - Please install the Config gem instead.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ledermann/rails-settings" rel="nofollow" target="_blank" title=""&gt;ledermann-rails-settings&lt;/a&gt; - Settings gem for Ruby on Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/markbates/configatron" rel="nofollow" target="_blank" title=""&gt;configatron&lt;/a&gt; - A powerful Ruby configuration system.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ahoward/configuration" rel="nofollow" target="_blank" title=""&gt;configuration&lt;/a&gt; - ruby configuration for your ruby programs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/infochimps-labs/configliere" rel="nofollow" target="_blank" title=""&gt;configliere&lt;/a&gt; - You've got a script. It's got some settings. Some settings are for this module, some are for that module. Most of them don't change. Except on your laptop, where the paths are different. Or when you're in production mode. Or when you're testing from the command line. "" So, Consigliere of mine, I think you should tell your Don what everyone knows. "" -- Don Corleone Configliere manage settings from many sources: static constants, simple config files, environment variables, commandline options, straight ruby. You don't have to predefine anything, but you can ask configliere to type-convert, require, document or password-obscure any of its fields. Modules can define config settings independently of each other and the main program.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lukeredpath/simpleconfig" rel="nofollow" target="_blank" title=""&gt;simpleconfig&lt;/a&gt; - SimpleConfig is a plugin designed to make application-wide configuration settings (e.g. in a Rails app) easy to set and access in an object-oriented fashion.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Squeegy/rails-settings" rel="nofollow" target="_blank" title=""&gt;rails-settings&lt;/a&gt; - Settings is a plugin that makes managing a table of global key, value pairs easy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsware/global" rel="nofollow" target="_blank" title=""&gt;global&lt;/a&gt; - Simple way to load your configs from yaml&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbklein/confstruct" rel="nofollow" target="_blank" title=""&gt;confstruct&lt;/a&gt; - A simple, hash/struct-based configuration object&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulca/configurable_engine" rel="nofollow" target="_blank" title=""&gt;configurable_engine&lt;/a&gt; - Configurable is a Rails 3/4 engine that allows you to set up config variables in a config file, specifying default values for all environmentspec. These variables can then be set on a per-app basis using a user facing configuration screen.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rahmal/rconfig" rel="nofollow" target="_blank" title=""&gt;rconfig&lt;/a&gt; - Configuration management library for Ruby applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stephencelis/app" rel="nofollow" target="_blank" title=""&gt;app&lt;/a&gt; - Move the config out of your app, and into App.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/metaskills/store_configurable" rel="nofollow" target="_blank" title=""&gt;store_configurable&lt;/a&gt; - Grown up ActiveRecord::Store config options!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/charlotte-ruby/yettings" rel="nofollow" target="_blank" title=""&gt;yettings&lt;/a&gt; - Create settings/contants for your Rails 3 app using yml key/value pairs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kaize/configus" rel="nofollow" target="_blank" title=""&gt;configus&lt;/a&gt; - Configus helps you easily manage environment specific settings&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;configtoolkit&lt;/a&gt; - Are you tired of writing custom code to parse and represent every new configuration file utilized in your programs? The Config Toolkit generates configuration classes and can populate them robustly by parsing different formats of configuration files.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/GutenYe/optimism" rel="nofollow" target="_blank" title=""&gt;optimism&lt;/a&gt; - a configuration library for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;application_configuration&lt;/a&gt; - A simple system for configuring Ruby applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;user_config&lt;/a&gt; - The library creates, saves, and loads configuration files, which are in a user's home directory or a specified directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Deprecation Tools"&gt;Deprecation Tools&lt;/h3&gt;&lt;h3 id="Gem and Library Inspection"&gt;Gem and Library Inspection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamsanderson/open_gem" rel="nofollow" target="_blank" title=""&gt;open_gem&lt;/a&gt; - Open a gem's source directory with either the default editor, or a specified command.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamsanderson/qwandry" rel="nofollow" target="_blank" title=""&gt;qwandry&lt;/a&gt; - Open a gem or library's source directory with your default editor.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lmarlow/gemedit" rel="nofollow" target="_blank" title=""&gt;gemedit&lt;/a&gt; - A utility to view a gem's source in your favorite editor&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Gem Creation"&gt;Gem Creation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/hoe" rel="nofollow" target="_blank" title=""&gt;Hoe&lt;/a&gt; - Hoe is a rake/rubygems helper for project Rakefiles. It helps you manage, maintain, and release your project and includes a dynamic plug-in system allowing for easy extensibility. Hoe ships with plug-ins for all your usual project tasks including rdoc generation, testing, packaging, deployment, and announcement.. See class rdoc for help. Hint: &lt;code&gt;ri Hoe&lt;/code&gt; or any of the plugins listed below. For extra goodness, see: &lt;a href="http://docs.seattlerb.org/hoe/Hoe.pdf" rel="nofollow" target="_blank"&gt;http://docs.seattlerb.org/hoe/Hoe.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technicalpickles/jeweler" rel="nofollow" target="_blank" title=""&gt;Jeweler&lt;/a&gt; - Simple and opinionated helper for creating Rubygem projects on GitHub&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/josevalim/enginex" rel="nofollow" target="_blank" title=""&gt;enginex&lt;/a&gt; - Creates a Rails 3 engine with Rakefile, Gemfile and running tests&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/svenfuchs/gem-release" rel="nofollow" target="_blank" title=""&gt;Gem-release&lt;/a&gt; - Release your ruby gems with ease. (What a bold statement for such a tiny plugin ...)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/TwP/bones" rel="nofollow" target="_blank" title=""&gt;Bones&lt;/a&gt; - Mr Bones is a handy tool that creates new Ruby projects from a code skeleton. The skeleton contains some starter code and a collection of rake tasks to ease the management and deployment of your source code. Several Mr Bones plugins are available for creating git repositories, creating GitHub projects, running various test suites and source code analysis tools.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evan/echoe" rel="nofollow" target="_blank" title=""&gt;Echoe&lt;/a&gt; - A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-ore/ore" rel="nofollow" target="_blank" title=""&gt;Ore&lt;/a&gt; - Ore is a fully configurable and extendable Ruby gem generator. With Ore you spend less time editing files, and more time writing code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/drnic/newgem" rel="nofollow" target="_blank" title=""&gt;Newgem&lt;/a&gt; - Quickly bundle any Ruby libraries into a RubyGem and share it with the world, your colleagues, or perhaps just with yourself amongst your projects. RubyGems are centrally stored, versioned, and support dependencies between other gems, so they are the ultimate way to bundle libraries, executables, associated tests, examples, and more. Within this gem, you get one thing - &lt;code&gt;newgem&lt;/code&gt; - an executable to create your own gems. Your new gems will include designated folders for Ruby code, test files, executables, and even a default website page for you to explain your project, and which instantly uploads to RubyForge website (which looks just like this one by default)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/postmodern/rubygems-tasks" rel="nofollow" target="_blank" title=""&gt;rubygems-tasks&lt;/a&gt; - Agnostic and unobtrusive Rake tasks for managing and releasing Ruby Gems.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flori/gem_hadar" rel="nofollow" target="_blank" title=""&gt;gem_hadar&lt;/a&gt; - This library contains some useful functionality to support the development of Ruby Gems&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="git Tools"&gt;git Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/gazler/githug" rel="nofollow" target="_blank" title=""&gt;githug&lt;/a&gt; - An interactive way to learn git.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schacon/ruby-git" rel="nofollow" target="_blank" title=""&gt;Ruby/Git&lt;/a&gt; - Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mojombo/grit" rel="nofollow" target="_blank" title=""&gt;Grit&lt;/a&gt; - Grit is a Ruby library for extracting information from a git repository in an object oriented manner.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/libgit2/rugged" rel="nofollow" target="_blank" title=""&gt;rugged&lt;/a&gt; - Rugged is a Ruby bindings to the libgit2 linkable C Git library. This is for testing and using the libgit2 library in a language that is awesome.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wingrunr21/gitolite" rel="nofollow" target="_blank" title=""&gt;gitolite&lt;/a&gt; - This gem is designed to provide a Ruby interface to the gitolite git backend system. This gem aims to provide all management functionality that is available via the gitolite-admin repository (like SSH keys, repository permissions, etc)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/walle/gas" rel="nofollow" target="_blank" title=""&gt;gas&lt;/a&gt; - Gas is a utility to keep track of your git authors. Add them to gas and switch at any time. Great if you use one author at work and one at home or if you are doing pair programming. Is extendable with own commands.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="GUI Frameworks"&gt;GUI Frameworks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/shoes/shoes" rel="nofollow" target="_blank" title=""&gt;shoes&lt;/a&gt; - Shoes is the best little GUI toolkit for Ruby. This gem is currently a placeholder until we properly gemfiy Shoes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/larskanis/fxruby" rel="nofollow" target="_blank" title=""&gt;FXRuby&lt;/a&gt; - FXRuby is the Ruby binding to the FOX GUI toolkit.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-gnome2/ruby-gnome2" rel="nofollow" target="_blank" title=""&gt;Ruby/GTK2&lt;/a&gt; - Ruby/GTK2 is a Ruby binding of GTK+-2.x.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanmelt/qtbindings" rel="nofollow" target="_blank" title=""&gt;qtbindings&lt;/a&gt; - qtbindings provides ruby bindings to QT4.x. It is derived from the kdebindings project.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;wxRuby&lt;/a&gt; - wxRuby allows the creation of graphical user interface (GUI) applications via the wxWidgets library. wxRuby provides native-style GUI windows, dialogs and controls on platforms including Windows, OS X and Linux.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/monkeybars/monkeybars-core" rel="nofollow" target="_blank" title=""&gt;monkeybars&lt;/a&gt; - monkeybars&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="irb Alternatives"&gt;irb Alternatives&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pry/pry" rel="nofollow" target="_blank" title=""&gt;Pry&lt;/a&gt; - An IRB alternative and runtime developer console&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cldwalker/ripl" rel="nofollow" target="_blank" title=""&gt;ripl&lt;/a&gt; - ripl is a light shell that encourages common middleware for shells i.e. rack for ruby shells. It is also a modular alternative to irb. Like irb, it loads ~/.irbrc, has autocompletion and keeps history in ~/.irb_history. Unlike irb, it is highly customizable via plugins and supports commands i.e. ripl-play. This customizability makes it easy to build custom shells (i.e. for a gem or application) and complex shells (i.e. for the web). Works on ruby 1.8.7 and greater.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="irb Tools"&gt;irb Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/michaeldv/awesome_print" rel="nofollow" target="_blank" title=""&gt;Awesome print&lt;/a&gt; - Great Ruby dubugging companion: pretty print Ruby objects to visualize their structure. Supports custom object formatting via plugins&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/dotfiles" rel="nofollow" target="_blank" title=""&gt;Dotfiles&lt;/a&gt; - config files for zsh, bash, completions, gem, git, irb, rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rweng/pry-rails" rel="nofollow" target="_blank" title=""&gt;pry-rails&lt;/a&gt; - Use Pry as your rails console&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cldwalker/hirb" rel="nofollow" target="_blank" title=""&gt;Hirb&lt;/a&gt; - Hirb provides a mini view framework for console applications and uses it to improve ripl(irb)'s default inspect output. Given an object or array of objects, hirb renders a view based on the object's class and/or ancestry. Hirb offers reusable views in the form of helper classes. The two main helpers, Hirb::Helpers::Table and Hirb::Helpers::Tree, provide several options for generating ascii tables and trees. Using Hirb::Helpers::AutoTable, hirb has useful default views for at least ten popular database gems i.e. Rails' ActiveRecord::Base. Other than views, hirb offers a smart pager and a console menu. The smart pager only pages when the output exceeds the current screen size. The menu is used in conjunction with tables to offer two dimensional menus.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;wirble&lt;/a&gt; - Handful of common Irb features, made easy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arches/table_print" rel="nofollow" target="_blank" title=""&gt;table_print&lt;/a&gt; - TablePrint turns objects into nicely formatted columns for easy reading. Works great in rails console, works on pure ruby objects, autodetects columns, lets you traverse ActiveRecord associations. Simple, powerful.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cldwalker/bond" rel="nofollow" target="_blank" title=""&gt;Bond&lt;/a&gt; - Bond is on a mission to improve autocompletion in ruby, especially for irb/ripl. Aside from doing everything irb's can do and fixing its quirks, Bond can autocomplete argument(s) to methods, uniquely completing per module, per method and per argument. Bond brings ruby autocompletion closer to bash/zsh as it provides a configuration system and a DSL for creating custom completions and completion rules. With this configuration system, users can customize their autocompletions and share it with others. Bond can also load completions that ship with gems. Bond is able to offer more than irb's completion since it uses the full line of input when completing as opposed to irb's last-word approach.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/irbtools" rel="nofollow" target="_blank" title=""&gt;irbtools&lt;/a&gt; - Irbtools make Ruby's IRB more productive.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/irbtools" rel="nofollow" target="_blank" title=""&gt;every_day_irb&lt;/a&gt; - EveryDayIrb simplifies daily life in IRB with commands like: ls, cat, rq, rrq, ld, reset!, ...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sickill/racksh" rel="nofollow" target="_blank" title=""&gt;Racksh&lt;/a&gt; - Console for any Rack based ruby web app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jberkel/interactive_editor" rel="nofollow" target="_blank" title=""&gt;interactive_editor&lt;/a&gt; - Use vim (or any other text editor) from inside irb to quickly test &amp;amp; write new code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/oggy/looksee" rel="nofollow" target="_blank" title=""&gt;Looksee&lt;/a&gt; - Supercharged method introspection in IRB.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/clipboard" rel="nofollow" target="_blank" title=""&gt;Clipboard&lt;/a&gt; - Access to the clipboard on Linux, MacOS, Windows, and Cygwin: Clipboard.copy, Clipboard.paste, Clipboard.clear&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/wirb" rel="nofollow" target="_blank" title=""&gt;wirb&lt;/a&gt; - WIRB highlights inspected Ruby objects. It is based on the original Wirble. You can create new color schemas using yaml.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gilesbowkett/utility-belt" rel="nofollow" target="_blank" title=""&gt;Utility-belt&lt;/a&gt; - IRB Power User Utility Belt&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arches/marco-polo" rel="nofollow" target="_blank" title=""&gt;marco-polo&lt;/a&gt; - MarcoPolo shows your app name and environment in your console prompt so you don't accidentally break production&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/fancy_irb" rel="nofollow" target="_blank" title=""&gt;FancyIrb&lt;/a&gt; - FancyIrb makes IRB # =&amp;gt; friendly.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/postmodern/sketches" rel="nofollow" target="_blank" title=""&gt;Sketches&lt;/a&gt; - Sketches allows you to create and edit Ruby code from the comfort of your editor, while having it safely reloaded in IRB whenever changes to the code are saved.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Presentation Software"&gt;Presentation Software&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/LeaVerou/CSSS" rel="nofollow" target="_blank" title=""&gt;CSSS&lt;/a&gt; - CSS-based SlideShow System&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schacon/showoff" rel="nofollow" target="_blank" title=""&gt;Showoff&lt;/a&gt; - ShowOff is a Sinatra web app that reads simple configuration files for a presentation. It is sort of like a Keynote web app engine. I am using it to do all my talks in 2010, because I have a deep hatred in my heart for Keynote and yet it is by far the best in the field. The idea is that you setup your slide files in section subdirectories and then startup the showoff server in that directory. It will read in your showoff.json file for which sections go in which order and then will give you a URL to present from.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cykod/CoderDeck" rel="nofollow" target="_blank" title=""&gt;CoderDeck&lt;/a&gt; - Create live-coding HTML5-based presentations and workshops&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nakajima/slidedown" rel="nofollow" target="_blank" title=""&gt;Slidedown&lt;/a&gt; - Create slides with Markdown&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/davist11/jQuery-Presentation" rel="nofollow" target="_blank" title=""&gt;Jquery-presentation&lt;/a&gt; - No need for Keynote or PowerPoint anymore, use a browser to give presentations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geraldb/s6" rel="nofollow" target="_blank" title=""&gt;S6&lt;/a&gt; - S6 Blank - Slide Show Templates Using HTML5, CSS3 &amp;amp; JavaScript (w/ jQuery)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/burtlo/parade" rel="nofollow" target="_blank" title=""&gt;parade&lt;/a&gt; - Parade is an open source presentation software that consists of a Sinatra web app that serves up markdown files in a presentation format. Parade can serve a directory or be configured to run with a simple configuration file. * Markdown backed data &amp;gt; This ultimately makes it easier to manage diffs when making changes, using the content in other documents, and quickly re-using portions of a presentation. * Syntax Highlighting &amp;gt; Using GitHub flavored markdown, code fences will automatically be syntax highlighted, making it incredibly easy to integrate code samples. * Code Execution &amp;gt; Slides are able to provide execution and show results for JavaScript and Coffeescript live within the browser. This allows for live demonstrations of code. * Web &amp;gt; Slide presentations are basically websites -- they run in your browser from your desktop. This allows for a wide range of possibilities for customization and expandability. * Basic Templating and Color Schemes &amp;gt; Several templates and color scheme options have been provided to help you get started. While Parade does not currently provide anything near the variety of many other presentation packages, it is well-suited for basic presentations. * Design Flexibility (pros and cons) &amp;gt; Unless you're skilled in CSS/Animations, you will likely have a harder time creating presentations with as much polish as other programs provide. However, this approach also makes Parade incredibly flexible if you do understand CSS/Animations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geraldb/slideshow" rel="nofollow" target="_blank" title=""&gt;Slideshow&lt;/a&gt; - Slide Show (S9) - A Free Web Alternative to PowerPoint and Keynote in Ruby&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Project Management"&gt;Project Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/gitlabhq/gitlabhq" rel="nofollow" target="_blank" title=""&gt;gitlabhq&lt;/a&gt; - GitLab is version control for your server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/edavis10/redmine" rel="nofollow" target="_blank" title=""&gt;Redmine&lt;/a&gt; - Redmine is a flexible project management web application written using Ruby on Rails framework.  &lt;a href="http://github.com/edavis10/redmine" rel="nofollow" target="_blank"&gt;http://github.com/edavis10/redmine&lt;/a&gt; is the official git mirror of the svn repository&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/teambox/teambox" rel="nofollow" target="_blank" title=""&gt;Teambox&lt;/a&gt; - This is the legacy version of Teambox - the award-winning collaboration solution, inspired by Basecamp, Yammer and Twitter.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/malclocke/fulcrum" rel="nofollow" target="_blank" title=""&gt;fulcrum&lt;/a&gt; - An agile project planning tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chiliproject/chiliproject" rel="nofollow" target="_blank" title=""&gt;ChiliProject&lt;/a&gt; - ChiliProject is a web based project management system built on Ruby on Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dim/retrospectiva" rel="nofollow" target="_blank" title=""&gt;Retrospectiva&lt;/a&gt; - Open source, web-based agile project management, featuring: Goal planner, Story management, Issue-tracker, Code review, SCM Integration, Wiki &amp;amp; Blog.  It is intended to assist the collaborative aspect of work carried out by software development teams.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tpope/pickler" rel="nofollow" target="_blank" title=""&gt;pickler&lt;/a&gt; - Synchronize between Cucumber and Pivotal Tracker&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rietta/git_time_extractor" rel="nofollow" target="_blank" title=""&gt;git_time_extractor&lt;/a&gt; - Analyzes Git repository commit log to compute developer working hours, weekly activity, and to detect death marches in software development. It computes the timing statistics based on the timestamps of each commit and the intervals between them. Useful for verifying developer time sheets and for tax purposes and it supports filtering for a specific tax year. See &lt;a href="https://github.com/rietta/git_time_extractor/wiki" rel="nofollow" target="_blank"&gt;https://github.com/rietta/git_time_extractor/wiki&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Ruby Core Extensions"&gt;Ruby Core Extensions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/rails" rel="nofollow" target="_blank" title=""&gt;Active Support&lt;/a&gt; - A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/hashie" rel="nofollow" target="_blank" title=""&gt;Hashie&lt;/a&gt; - Hashie is a collection of classes and mixins that make hashes more powerful.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ms-ati/docile" rel="nofollow" target="_blank" title=""&gt;docile&lt;/a&gt; - Docile turns any Ruby object into a DSL. Especially useful with the Builder pattern.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bbatsov/powerpack" rel="nofollow" target="_blank" title=""&gt;powerpack&lt;/a&gt; - A few useful extensions to core Ruby classes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/datamapper/extlib" rel="nofollow" target="_blank" title=""&gt;extlib&lt;/a&gt; - Support library for Merb&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubyworks/facets" rel="nofollow" target="_blank" title=""&gt;Facets&lt;/a&gt; - Facets is the premier collection of extension methods for the Ruby programming language. Facets extensions are unique by virtue of thier atomicity. They are stored in individual files allowing for highly granular control of requirements. In addition, Facets includes a few additional classes and mixins suitable to wide variety of applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/harukizaemon/hamster" rel="nofollow" target="_blank" title=""&gt;hamster&lt;/a&gt; - Efficient, immutable, thread-safe collection classes for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evolve75/RubyTree" rel="nofollow" target="_blank" title=""&gt;RubyTree&lt;/a&gt; - RubyTree is a pure Ruby implementation of the generic tree data structure. It provides a node-based model to store named nodes in the tree, and provides simple APIs to access, modify and traverse the structure. The implementation is node-centric, where individual nodes in the tree are the primary structural elements. All common tree-traversal methods (pre-order, post-order, and breadth-first) are supported. The library mixes in the Enumerable and Comparable modules to allow access to the tree as a standard collection (iteration, comparison, etc.). A Binary tree is also provided, which provides the in-order traversal in addition to the other methods. RubyTree supports importing from, and exporting to JSON, and also supports the Ruby's standard object marshaling. This is a BSD licensed open source project, and is hosted at &lt;a href="http://github.com/evolve75/RubyTree" rel="nofollow" target="_blank"&gt;http://github.com/evolve75/RubyTree&lt;/a&gt;, and is available as a standard gem from &lt;a href="http://rubygems.org/gems/rubytree" rel="nofollow" target="_blank"&gt;http://rubygems.org/gems/rubytree&lt;/a&gt;. The home page for RubyTree is at &lt;a href="http://rubytree.anupamsg.me" rel="nofollow" target="_blank"&gt;http://rubytree.anupamsg.me&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ms-ati/rumonade" rel="nofollow" target="_blank" title=""&gt;rumonade&lt;/a&gt; - A Scala-inspired Monad library for Ruby, aiming to share the most common idioms for folks working in both languages. Includes Option, Array, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Ruby Version Management"&gt;Ruby Version Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sstephenson/rbenv" rel="nofollow" target="_blank" title=""&gt;rbenv&lt;/a&gt; - Groom your app’s Ruby environment&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wayneeseguin/rvm" rel="nofollow" target="_blank" title=""&gt;RVM&lt;/a&gt; - RVM ~ Ruby Environment Manager ~ Ruby Gem Library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sstephenson/ruby-build" rel="nofollow" target="_blank" title=""&gt;ruby-build&lt;/a&gt; - Compile and install Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/postmodern/chruby" rel="nofollow" target="_blank" title=""&gt;chruby&lt;/a&gt; - Changes the current Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vertiginous/pik" rel="nofollow" target="_blank" title=""&gt;Pik&lt;/a&gt; - Pik is a tool to manage multiple versions of ruby on Windows. It can be used from the Windows command line (cmd.exe), Windows PowerShell, or Git Bash. I have yet to test on cygwin. &amp;gt;pik help commands add Adds another ruby location to pik. benchmark|bench Runs bencmarks with all versions that pik is aware of. checkup|cu Checks your environment for current Ruby best practices. config Adds/modifies configuration options. default Switches back to the default settings. gem Runs the gem command with all versions that pik is aware of. gemsync Synchronizes gems from the version specified to the current version. help Displays help information. implode Removes your pik configuration. info Displays information about the current ruby version. install|in Downloads and installs different ruby versions. list|ls Lists ruby versions that pik is aware of. rake Runs the rake command with all versions that pik is aware of. remove|rm Removes a ruby location from pik. ruby|rb Runs ruby with all versions that pik is aware of. run Runs command with all versions of ruby that pik is aware of. switch|sw|use Switches ruby versions based on patterns. tag Adds the given tag to the current version. tags Runs the pik command against the given tags. uninstall|unin Deletes a ruby version from the filesystem and removes it from Pik. update|up updates pik. For help on a particular command, use 'pik help COMMAND'.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/senny/rvm.el" rel="nofollow" target="_blank" title=""&gt;Rvm.el&lt;/a&gt; - use rvm to manage ruby versions within emacs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hmans/rbfu" rel="nofollow" target="_blank" title=""&gt;rbfu&lt;/a&gt; - Minimal Ruby version management is minimal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Scripting Frameworks"&gt;Scripting Frameworks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jimweirich/rake" rel="nofollow" target="_blank" title=""&gt;Rake&lt;/a&gt; - Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. Rake has the following features: * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax. No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?) * Users can specify tasks with prerequisites. * Rake supports rule patterns to synthesize implicit tasks. * Flexible FileLists that act like arrays but know about manipulating file names and paths. * A library of prepackaged tasks to make building rakefiles easier. For example, tasks for building tarballs and publishing to FTP or SSH sites. (Formerly tasks for building RDoc and Gems were included in rake but they're now available in RDoc and RubyGems respectively.) * Supports parallel execution of tasks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wycats/thor" rel="nofollow" target="_blank" title=""&gt;Thor&lt;/a&gt; - Thor is a toolkit for building powerful command-line interfaces.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ahoward/main" rel="nofollow" target="_blank" title=""&gt;main&lt;/a&gt; - a class factory and dsl for generating command line programs real quick&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cldwalker/boson" rel="nofollow" target="_blank" title=""&gt;Boson&lt;/a&gt; - Boson is a modular command/task framework. Thanks to its rich set of plugins, it differentiates itself from rake and thor by being usable from irb and the commandline, having optional automated views generated by hirb and allowing libraries to be written as plain ruby. Works with ruby &amp;gt;= 1.9.2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/sake" rel="nofollow" target="_blank" title=""&gt;Sake&lt;/a&gt; - Sake tastes great and helps maintain system-level Rake files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Terminal Coloring"&gt;Terminal Coloring&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sickill/rainbow" rel="nofollow" target="_blank" title=""&gt;Rainbow&lt;/a&gt; - Colorize printed text on ANSI terminals&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flori/term-ansicolor" rel="nofollow" target="_blank" title=""&gt;term-ansicolor&lt;/a&gt; - This library uses ANSI escape sequences to control the attributes of terminal output&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fazibear/colorize" rel="nofollow" target="_blank" title=""&gt;colorize&lt;/a&gt; - Extends String class or add a ColorizedString with methods to set text color, background color and text effects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/colored" rel="nofollow" target="_blank" title=""&gt;colored&lt;/a&gt; - &amp;gt;&amp;gt; puts "this is red".red &amp;gt;&amp;gt; puts "this is red with a blue background (read: ugly)".red_on_blue &amp;gt;&amp;gt; puts "this is red with an underline".red.underline &amp;gt;&amp;gt; puts "this is really bold and really blue".bold.blue &amp;gt;&amp;gt; logger.debug "hey this is broken!".red_on_yellow # in rails &amp;gt;&amp;gt; puts Color.red "This is red" # but this part is mostly untested&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubyworks/ansi" rel="nofollow" target="_blank" title=""&gt;ansi&lt;/a&gt; - The ANSI project is a superlative collection of ANSI escape code related libraries eabling ANSI colorization and stylization of console output. Byte for byte ANSI is the best ANSI code library available for the Ruby programming language.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/busyloop/lolcat" rel="nofollow" target="_blank" title=""&gt;lolcat&lt;/a&gt; - Rainbows and unicorns!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janlelis/paint" rel="nofollow" target="_blank" title=""&gt;paint&lt;/a&gt; - Terminal painter: No string extensions / 256 color support / effect support. Usage: Paint['string', :red, :bright]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Text Editors in Ruby"&gt;Text Editors in Ruby&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/danlucraft/redcar" rel="nofollow" target="_blank" title=""&gt;Redcar&lt;/a&gt; - A pure Ruby text editor&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/ruco" rel="nofollow" target="_blank" title=""&gt;Ruco&lt;/a&gt; - Desktop-style, Intuitive, Commandline Editor in Ruby. 'Better than nano, simpler than vim.'&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/angal/arcadia" rel="nofollow" target="_blank" title=""&gt;Arcadia&lt;/a&gt; - Arcadia IDE&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Pistos/diakonos" rel="nofollow" target="_blank" title=""&gt;Diakonos&lt;/a&gt; - Diakonos is a customizable, usable console-based text editor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Documentation Tools"&gt;Documentation Tools&lt;/h2&gt;&lt;h3 id="Documentation Generators"&gt;Documentation Generators&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rdoc/rdoc" rel="nofollow" target="_blank" title=""&gt;RDoc&lt;/a&gt; - RDoc produces HTML and command-line documentation for Ruby projects. RDoc includes the +rdoc+ and +ri+ tools for generating and displaying documentation from the command-line.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voloko/sdoc" rel="nofollow" target="_blank" title=""&gt;Sdoc&lt;/a&gt; - rdoc generator html with javascript search index.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lsegal/yard" rel="nofollow" target="_blank" title=""&gt;Yard&lt;/a&gt; - YARD is a documentation generation tool for the Ruby programming language. It enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeromegn/DocumentUp" rel="nofollow" target="_blank" title=""&gt;DocumentUp&lt;/a&gt; - Pretty documentation generator for Github projects with proper Readme.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zipmark/rspec_api_documentation" rel="nofollow" target="_blank" title=""&gt;rspec_api_documentation&lt;/a&gt; - Generate API docs from your test suite&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Pajk/apipie-rails" rel="nofollow" target="_blank" title=""&gt;apipie-rails&lt;/a&gt; - Rails REST API documentation tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rtomayko/ronn" rel="nofollow" target="_blank" title=""&gt;Ronn&lt;/a&gt; - Builds manuals&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rtomayko/rocco" rel="nofollow" target="_blank" title=""&gt;Rocco&lt;/a&gt; - Docco in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mislav/hanna" rel="nofollow" target="_blank" title=""&gt;Hanna&lt;/a&gt; - Hanna is an RDoc implemented in Haml, making its source clean and maintainable. It's built with simplicity, beauty and ease of browsing in mind.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunaku/md2man" rel="nofollow" target="_blank" title=""&gt;md2man&lt;/a&gt; - Converts markdown into UNIX manpages and HTML webpages.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/breakpointer/ajax-rdoc" rel="nofollow" target="_blank" title=""&gt;Ajax-rdoc&lt;/a&gt; - Rdoc template and generator for Ruby source code that uses javascript to make searching for methods and classes very easy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tech-angels/annotator" rel="nofollow" target="_blank" title=""&gt;annotator&lt;/a&gt; - Annotate your models and keep your comments about fields.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunaku/binman" rel="nofollow" target="_blank" title=""&gt;binman&lt;/a&gt; - Produces UNIX manual pages for executable scripts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Gem Doc Viewers"&gt;Gem Doc Viewers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnewland/sinatra-rubygems" rel="nofollow" target="_blank" title=""&gt;Sinatra-rubygems&lt;/a&gt; - A complete reimplementation of the gem server command as a Sinatra application&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/manalang/bdoc" rel="nofollow" target="_blank" title=""&gt;Bdoc&lt;/a&gt; - Bdoc is a simple replacement for the gem or yard server. All it does is look at all of the Gems you have installed locally and creates a nice iframe based browser that makes it easy to navigate between gem docs. IT DOES NOT REQUIRE A SERVER FOR VIEWING... not like gem server does! If you use this, I highly suggest also using Hanna&lt;a href="a%20beautiful%20rdoc%20theme" title=""&gt;http://github.com/mislav/hanna/tree/master&lt;/a&gt;. Check out the demo &lt;a href="http://manalang.github.com/bdoc/bdoc.html" rel="nofollow" target="_blank"&gt;http://manalang.github.com/bdoc/bdoc.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/imownbey/docbox" rel="nofollow" target="_blank" title=""&gt;Docbox&lt;/a&gt; - Wiki interface allowing people to contribute to the documentation of a project&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quirkey/gembox" rel="nofollow" target="_blank" title=""&gt;Gembox&lt;/a&gt; - A sinatra based interface for browsing and admiring your gems.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Documents &amp;amp; Reports"&gt;Documents &amp;amp; Reports&lt;/h2&gt;&lt;h3 id="PDF Generation"&gt;PDF Generation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/prawnpdf/prawn" rel="nofollow" target="_blank" title=""&gt;Prawn&lt;/a&gt; - Prawn is a fast, tiny, and nimble PDF generator for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mileszs/wicked_pdf" rel="nofollow" target="_blank" title=""&gt;Wicked pdf&lt;/a&gt; - Wicked PDF uses the shell utility wkhtmltopdf to serve a PDF file to a user from HTML. In other words, rather than dealing with a PDF generation DSL of some sort, you simply write an HTML view as you would normally, and let Wicked take care of the hard stuff.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pdfkit/pdfkit" rel="nofollow" target="_blank" title=""&gt;Pdfkit&lt;/a&gt; - Uses wkhtmltopdf to create PDFs using HTML&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/antialize/wkhtmltopdf" rel="nofollow" target="_blank" title=""&gt;Wkhtmltopdf&lt;/a&gt; - Provides binaries for WKHTMLTOPDF project in an easily accessible package.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/prior/prawnto" rel="nofollow" target="_blank" title=""&gt;Prawnto&lt;/a&gt; - Support .prawn templates as Prawn::Document content&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/kitabu" rel="nofollow" target="_blank" title=""&gt;Kitabu&lt;/a&gt; - A framework for creating e-books from Markdown using Ruby. Using the Prince PDF generator, you'll be able to get high quality PDFs. Also supports EPUB, Mobi, Text and HTML generation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/walle/gimli" rel="nofollow" target="_blank" title=""&gt;gimli&lt;/a&gt; - Utility for converting markup files to pdf files. Useful for reports etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/princely" rel="nofollow" target="_blank" title=""&gt;Princely&lt;/a&gt; - A wrapper for the PrinceXML PDF generation library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shairontoledo/rghost" rel="nofollow" target="_blank" title=""&gt;Rghost&lt;/a&gt; - Ruby Ghostscript Engine is a document creation and conversion API, support(PDF,PS,GIF,TIF,PNG,JPG...). It uses the GhostScript framework for the format conversion, utilizes EPS templates and is optimized to work with larger documents.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igor-alexandrov/wisepdf" rel="nofollow" target="_blank" title=""&gt;wisepdf&lt;/a&gt; - Wisepdf uses the shell utility wkhtmltopdf to serve a PDF file to a user from HTML. In other words, rather than dealing with a PDF generation DSL of some sort, you simply write an HTML view as you would normally, and let pdf take care of the hard stuff.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adeven/shrimp" rel="nofollow" target="_blank" title=""&gt;shrimp&lt;/a&gt; - html to pdf with phantomjs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Whoops/prawn-rails" rel="nofollow" target="_blank" title=""&gt;prawn-rails&lt;/a&gt; - Prawn Handler for RoR 3.x/4.x projects handles and registers pdf formats&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bruce/rtex" rel="nofollow" target="_blank" title=""&gt;Rtex&lt;/a&gt; - LaTeX preprocessor for PDF generation; Rails plugin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/getjobber/prawnto" rel="nofollow" target="_blank" title=""&gt;prawnto_2&lt;/a&gt; - Simple PDF generation using the prawn library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amardaxini/acts_as_flying_saucer" rel="nofollow" target="_blank" title=""&gt;acts_as_flying_saucer&lt;/a&gt; - XHTML to PDF using Flying Saucer java library&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="PDF Processing"&gt;PDF Processing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/yob/pdf-reader" rel="nofollow" target="_blank" title=""&gt;pdf-reader&lt;/a&gt; - The PDF::Reader library implements a PDF parser conforming as much as possible to the PDF specification from Adobe&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Reports &amp;amp; Spreadsheets"&gt;Reports &amp;amp; Spreadsheets&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/randym/axlsx" rel="nofollow" target="_blank" title=""&gt;axlsx&lt;/a&gt; - xlsx spreadsheet generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx helps you create beautiful Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice) without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zdavatz/spreadsheet" rel="nofollow" target="_blank" title=""&gt;spreadsheet&lt;/a&gt; - The Spreadsheet Library is designed to read and write Spreadsheet Documents. As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported. Spreadsheet is a combination/complete rewrite of the Spreadsheet::Excel Library by Daniel J. Berger and the ParseExcel Library by Hannes Wyss. Spreadsheet can read, write and modify Spreadsheet Documents.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Empact/roo" rel="nofollow" target="_blank" title=""&gt;roo&lt;/a&gt; - Roo can access the contents of various spreadsheet files. It can handle * OpenOffice * Excelx * LibreOffice * CSV&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruport/ruport" rel="nofollow" target="_blank" title=""&gt;Ruport&lt;/a&gt; - Ruby Reports is a software library that aims to make the task of reporting less tedious and painful. It provides tools for data acquisition, database interaction, formatting, and parsing/munging.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gilt/rubyXL" rel="nofollow" target="_blank" title=""&gt;rubyXL&lt;/a&gt; - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/straydogstudio/axlsx_rails" rel="nofollow" target="_blank" title=""&gt;axlsx_rails&lt;/a&gt; - Axlsx_Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files. Partials are supported so you can organize any code into reusable chunks (e.g. cover sheets, common styling, etc.) You can use it with acts_as_xlsx, placing the to_xlsx call in a view and adding ':package =&amp;gt; xlsx_package' to the parameter list. Now you can keep your controllers thin!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gimite/google-spreadsheet-ruby" rel="nofollow" target="_blank" title=""&gt;google-spreadsheet-ruby&lt;/a&gt; - This is a library to read/write Google Spreadsheet.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sandrods/odf-report" rel="nofollow" target="_blank" title=""&gt;Odf-report&lt;/a&gt; - Generates ODF files, given a template (.odt) and data, replacing tags&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/acatighera/statistics" rel="nofollow" target="_blank" title=""&gt;Statistics&lt;/a&gt; - An ActiveRecord gem that makes it easier to do reporting.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/randym/activeadmin-axlsx" rel="nofollow" target="_blank" title=""&gt;activeadmin-axlsx&lt;/a&gt; - This gem uses axlsx to provide excel/xlsx downloads for resources in Active Admin. Often, users are happier with excel, so why not give it to them instead of CSV?&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamhunter/dossier" rel="nofollow" target="_blank" title=""&gt;dossier&lt;/a&gt; - Easy SQL based report generation with the ability to accept request parameters and render multiple formats.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/harvesthq/simple_xlsx_writer" rel="nofollow" target="_blank" title=""&gt;simple_xlsx_writer&lt;/a&gt; - Just as the name says, simple writter for Office 2007+ Excel files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/randym/acts_as_xlsx" rel="nofollow" target="_blank" title=""&gt;acts_as_xlsx&lt;/a&gt; - acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet. It can be added to any finder method or scope chain and can use localized column and sheet names with I18n.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seamusabshere/remote_table" rel="nofollow" target="_blank" title=""&gt;remote_table&lt;/a&gt; - Open local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and Google Docs. Returns an enumerator of Arrays or Hashes, depending on whether there are headers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schacon/munger" rel="nofollow" target="_blank" title=""&gt;Munger&lt;/a&gt; - a data munging and reporting library for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsim/mondrian-olap" rel="nofollow" target="_blank" title=""&gt;mondrian-olap&lt;/a&gt; - JRuby gem for performing multidimensional queries of relational database data using Mondrian OLAP Java library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wayneeseguin/dynamic_reports" rel="nofollow" target="_blank" title=""&gt;Dynamic reports&lt;/a&gt; - Dynamic Ruby Reporting Engine with support for Charts.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thinreports/thinreports-generator" rel="nofollow" target="_blank" title=""&gt;thinreports&lt;/a&gt; - Thinreports is an open source report generation tool for Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/saulabs/reportable" rel="nofollow" target="_blank" title=""&gt;Reportable&lt;/a&gt; - Reportable allows for easy report generation from ActiveRecord models by the addition of the reportable method.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/glebm/to_spreadsheet" rel="nofollow" target="_blank" title=""&gt;to_spreadsheet&lt;/a&gt; - Render XLSX from Rails using existing views ( .*.html =&amp;gt; .xlsx )&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cxn03651/write_xlsx" rel="nofollow" target="_blank" title=""&gt;write_xlsx&lt;/a&gt; - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dvandersluis/compendium" rel="nofollow" target="_blank" title=""&gt;compendium&lt;/a&gt; - Ruby on Rails reporting framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/murb/workbook" rel="nofollow" target="_blank" title=""&gt;workbook&lt;/a&gt; - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files, and offers basic diffing and sorting capabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="E-Commerce and Payments"&gt;E-Commerce and Payments&lt;/h2&gt;&lt;h3 id="Online Shops"&gt;Online Shops&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/spree/spree" rel="nofollow" target="_blank" title=""&gt;Spree&lt;/a&gt; - Spree is an open source e-commerce framework for Ruby on Rails. Join us on &lt;a href="http://slack.spreecommerce.com" rel="nofollow" target="_blank"&gt;http://slack.spreecommerce.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/drhenner/ror_ecommerce" rel="nofollow" target="_blank" title=""&gt;RoR eCommerce&lt;/a&gt; - Ruby on Rails Ecommerce platform, perfect for your small business solution.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ept/invoicing" rel="nofollow" target="_blank" title=""&gt;Invoicing&lt;/a&gt; - This is a framework for generating and displaying invoices (ideal for commercial Rails apps). It allows for flexible business logic; provides tools for tax handling, commission calculation etc. It aims to be both developer-friendly and accountant-friendly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Payments"&gt;Payments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Shopify/active_merchant" rel="nofollow" target="_blank" title=""&gt;Active Merchant&lt;/a&gt; - Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stripe/stripe-ruby" rel="nofollow" target="_blank" title=""&gt;Stripe&lt;/a&gt; - Stripe is the easiest way to accept payments online. See &lt;a href="https://stripe.com" rel="nofollow" target="_blank"&gt;https://stripe.com&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/braintree/braintree_ruby" rel="nofollow" target="_blank" title=""&gt;braintree&lt;/a&gt; - Ruby library for integrating with the Braintree Gateway&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nov/paypal-express" rel="nofollow" target="_blank" title=""&gt;paypal-express&lt;/a&gt; - PayPal Express Checkout API Client for Instance, Recurring and Digital Goods Payment.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/integrallis/stripe_event" rel="nofollow" target="_blank" title=""&gt;stripe_event&lt;/a&gt; - Stripe webhook integration for Rails applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tc/paypal_adaptive" rel="nofollow" target="_blank" title=""&gt;paypal_adaptive&lt;/a&gt; - Lightweight wrapper for Paypal's Adaptive Payments API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wvanbergen/adyen" rel="nofollow" target="_blank" title=""&gt;adyen&lt;/a&gt; - Package to simplify including the Adyen payments services into a Ruby on Rails application. The package provides functionality to create payment forms, handling and storing notifications sent by Adyen and consuming the SOAP services provided by Adyen. Moreover, it contains helper methods, mocks and matchers to simpify writing tests/specs for your code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tylerhunt/remit" rel="nofollow" target="_blank" title=""&gt;Remit&lt;/a&gt; - An API for using the Amazon Flexible Payment Service (FPS).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/salesking/sepa_king" rel="nofollow" target="_blank" title=""&gt;sepa_king&lt;/a&gt; - Implemention of pain.001.002.03 and pain.008.002.02 (ISO 20022)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dNitza/pin_up" rel="nofollow" target="_blank" title=""&gt;pin_up&lt;/a&gt; - A Ruby gem wrapper for the pin-payments (pin.net.au) API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mundipagg/mundipagg-ruby-api" rel="nofollow" target="_blank" title=""&gt;mundipagg&lt;/a&gt; - Ruby library for integrating with the MundiPagg payment web services&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Subscription Management"&gt;Subscription Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/cainlevy/freemium" rel="nofollow" target="_blank" title=""&gt;Freemium&lt;/a&gt; - Subscription management and processing (TrustCommerce, BrainTree, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pellegrino/jackpot" rel="nofollow" target="_blank" title=""&gt;jackpot&lt;/a&gt; - Billing for rack apps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/patchfx/fastspring-saasy" rel="nofollow" target="_blank" title=""&gt;fastspring-saasy&lt;/a&gt; - Ruby lib for using the FastSpring (SaaSy) subscription management API&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Fun"&gt;Fun&lt;/h2&gt;&lt;h3 id="Game libraries"&gt;Game libraries&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jlnr/gosu" rel="nofollow" target="_blank" title=""&gt;Gosu&lt;/a&gt; - 2D game development library. Gosu features easy to use and game-friendly interfaces to 2D graphics and text (accelerated by 3D hardware), sound samples and music as well as keyboard, mouse and gamepad/joystick input. Also includes demos for integration with RMagick, Chipmunk and OpenGL.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ippa/chingu" rel="nofollow" target="_blank" title=""&gt;Chingu&lt;/a&gt; - OpenGL accelerated 2D game framework for Ruby. Builds on Gosu (Ruby/C++) which provides all the core functionality. Chingu adds simple yet powerful game states, prettier input handling, deployment safe asset-handling, a basic re-usable game object and stackable game logic.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shawn42/gamebox" rel="nofollow" target="_blank" title=""&gt;Gamebox&lt;/a&gt; - Framework for building and distributing games using Gosu&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Mon-Ouie/ray" rel="nofollow" target="_blank" title=""&gt;ray&lt;/a&gt; - Written to play with Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/beoran/chipmunk" rel="nofollow" target="_blank" title=""&gt;Chipmunk&lt;/a&gt; - Enhanced ruby bindings for the chipmunk game physics engine.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jacius/rubygame" rel="nofollow" target="_blank" title=""&gt;Rubygame&lt;/a&gt; - Clean and powerful library for game programming&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/burtlo/metro" rel="nofollow" target="_blank" title=""&gt;metro&lt;/a&gt; - Metro is a 2D Gaming framework built around gosu (game development library). Metro makes it easy to create games by enforcing common conceptual structures and conventions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/neochuky/gosu-android" rel="nofollow" target="_blank" title=""&gt;gosu_android&lt;/a&gt; - Gosu-Android is an implementation for Android devices of the multiplatform Gosu library.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Music &amp;amp; MIDI"&gt;Music &amp;amp; MIDI&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/gilesbowkett/archaeopteryx" rel="nofollow" target="_blank" title=""&gt;Archaeopteryx&lt;/a&gt; - Ruby MIDI DJing/live-coding thing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubiety/jazz_model" rel="nofollow" target="_blank" title=""&gt;Jazztoolbox&lt;/a&gt; - Jazz Model - A data model for Jazz theory and other cool stuff.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arirusso/unimidi" rel="nofollow" target="_blank" title=""&gt;unimidi&lt;/a&gt; - Platform independent realtime MIDI input and output for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bleything/midiator" rel="nofollow" target="_blank" title=""&gt;Midiator&lt;/a&gt; - A nice Ruby interface to your system's MIDI services. MIDIator was inspired by Topher Cyll's fantastic Practical Ruby Projects book. In it, Topher describes how to interact with the MIDI providers in OSX, Linux, and Windows. As I was reading the book, I noticed some things I would do differently, which got me thinking that maybe it would be valuable to package up my modifications to the book's code and release it as a gem.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jimm/midilib" rel="nofollow" target="_blank" title=""&gt;Midilib&lt;/a&gt; - midilib is a pure Ruby MIDI library useful for reading and writing standard MIDI files and manipulating MIDI event data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arirusso/micromidi" rel="nofollow" target="_blank" title=""&gt;micromidi&lt;/a&gt; - A Ruby DSL for MIDI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jimm/patchmaster" rel="nofollow" target="_blank" title=""&gt;patchmaster&lt;/a&gt; - PatchMaster is a MIDI processing and patching system. It allows a musician to reconfigure a MIDI setup instantaneously and modify the MIDI data in real time.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/csoriav/cultome_player" rel="nofollow" target="_blank" title=""&gt;cultome_player&lt;/a&gt; - A console music library explorer and player&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Graphics"&gt;Graphics&lt;/h2&gt;&lt;h3 id="Graphing"&gt;Graphing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/chartkick" rel="nofollow" target="_blank" title=""&gt;chartkick&lt;/a&gt; - Create beautiful JavaScript charts with one line of Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/michelson/lazy_high_charts" rel="nofollow" target="_blank" title=""&gt;Lazy high charts&lt;/a&gt; - Make highcharts a la ruby , works in rails 4.X / 3.X, and other ruby web frameworks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/topfunky/gruff" rel="nofollow" target="_blank" title=""&gt;Gruff&lt;/a&gt; - Beautiful graphs for one or multiple datasets. Can be used on websites or in documents.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattetti/googlecharts" rel="nofollow" target="_blank" title=""&gt;Googlecharts&lt;/a&gt; - Generate charts using Google API &amp;amp; Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pullmonkey/open_flash_chart" rel="nofollow" target="_blank" title=""&gt;Open flash chart&lt;/a&gt; - The ruby on rails plugin for teethgrinder's Open Flash Chart (version 2)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/winston/google_visualr" rel="nofollow" target="_blank" title=""&gt;google_visualr&lt;/a&gt; - This Ruby gem, GoogleVisualr, is a wrapper around the Google Chart Tools that allows anyone to create the same beautiful charts with just Ruby; you don't have to write any JavaScript at all.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/xaviershay/tufte-graph" rel="nofollow" target="_blank" title=""&gt;Tufte-graph&lt;/a&gt; - a jQuery plugin that makes pretty bar charts&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/PerfectlyNormal/highcharts-rails" rel="nofollow" target="_blank" title=""&gt;highcharts-rails&lt;/a&gt; - Gem that includes Highcharts (Interactive JavaScript charts for your web projects), in the Rails Asset Pipeline introduced in Rails 3.1&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rdp/ruby_gnuplot" rel="nofollow" target="_blank" title=""&gt;Ruby gnuplot&lt;/a&gt; - The ruby gnuplot gem [gnuplot] &lt;a href="official%20releases%20of%20the%20gnuplot%20gem%20are%20from%20rdp%20branch" title=""&gt;rgnuplot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/clbustos/rubyvis" rel="nofollow" target="_blank" title=""&gt;Rubyvis&lt;/a&gt; - Rubyvis&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adamwiggins/rifgraf" rel="nofollow" target="_blank" title=""&gt;Rifgraf&lt;/a&gt; - Fire-and-forget data collection and graphing service&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/deepakjois/gchartrb" rel="nofollow" target="_blank" title=""&gt;Gchartrb&lt;/a&gt; - Visit &lt;a href="http://code.google.com/p/gchartrb" rel="nofollow" target="_blank"&gt;http://code.google.com/p/gchartrb&lt;/a&gt; to track development regarding gchartrb. == FEATURES: * Provides an object oriented interface in Ruby to create Google Chart URLs for charts. == INSTALL: === Ruby Gem:&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/topfunky/sparklines" rel="nofollow" target="_blank" title=""&gt;Sparklines&lt;/a&gt; - Tiny graphs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Bantik/seer" rel="nofollow" target="_blank" title=""&gt;Seer&lt;/a&gt; - Seer is a lightweight, semantically rich wrapper for the Google Visualization API. It allows you to easily create a visualization of data in a variety of formats, including area charts, bar charts, column charts, gauges, line charts, and pie charts.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kontera-technologies/graphite-api" rel="nofollow" target="_blank" title=""&gt;graphite-api&lt;/a&gt; - Graphite API - A Simple ruby client, aggregator daemon and API tools&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amardaxini/rchart" rel="nofollow" target="_blank" title=""&gt;rchart&lt;/a&gt; - Ruby port of the slick pChart charting library&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Image Processing"&gt;Image Processing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/wvanbergen/chunky_png" rel="nofollow" target="_blank" title=""&gt;chunky_png&lt;/a&gt; - This pure Ruby library can read and write PNG images without depending on an external image library, like RMagick. It tries to be memory efficient and reasonably fast. It supports reading and writing all PNG variants that are defined in the specification, with one limitation: only 8-bit color depth is supported. It supports all transparency, interlacing and filtering options the PNG specifications allows. It can also read and write textual metadata from PNG files. Low-level read/write access to PNG chunks is also possible. This library supports simple drawing on the image canvas and simple operations like alpha composition and cropping. Finally, it can import from and export to RMagick for interoperability. Also, have a look at OilyPNG at &lt;a href="http://github.com/wvanbergen/oily_png" rel="nofollow" target="_blank"&gt;http://github.com/wvanbergen/oily_png&lt;/a&gt;. OilyPNG is a drop in mixin module that implements some of the ChunkyPNG algorithms in C, which provides a massive speed boost to encoding and decoding.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/minimagick/minimagick" rel="nofollow" target="_blank" title=""&gt;MiniMagick&lt;/a&gt; - Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rmagick/rmagick" rel="nofollow" target="_blank" title=""&gt;RMagick&lt;/a&gt; - RMagick is an interface between Ruby and ImageMagick.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/image_science" rel="nofollow" target="_blank" title=""&gt;Image science&lt;/a&gt; - ImageScience is a clean and happy Ruby library that generates thumbnails -- and kicks the living crap out of RMagick. Oh, and it doesn't leak memory like a sieve. :) For more information including build steps, see &lt;a href="http://seattlerb.rubyforge.org/" rel="nofollow" target="_blank"&gt;http://seattlerb.rubyforge.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/EricR/image_sorcery" rel="nofollow" target="_blank" title=""&gt;image_sorcery&lt;/a&gt; - A ruby ImageMagick/GraphicsMagick library that doesn't suck&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/afeld/magickly" rel="nofollow" target="_blank" title=""&gt;magickly&lt;/a&gt; - A service for image manipulation - built as an extensible wrapper of Imagemagick which handles caching, c/o the Dragonfly gem.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/maxim/skeptick" rel="nofollow" target="_blank" title=""&gt;skeptick&lt;/a&gt; - Thin ImageMagick DSL with smart command composition&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/janfoeh/paperclip-optimizer" rel="nofollow" target="_blank" title=""&gt;paperclip-optimizer&lt;/a&gt; - paperclip-optimizer is a Paperclip processor for optimizing and minifying uploaded images.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/banister/devil" rel="nofollow" target="_blank" title=""&gt;Devil&lt;/a&gt; - Ruby bindings for DevIL cross platform image loading library&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="QR Codes"&gt;QR Codes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/whomwah/rqrcode" rel="nofollow" target="_blank" title=""&gt;rqrcode&lt;/a&gt; - rQRCode is a library for encoding QR Codes. The simple interface allows you to create QR Code data structures ready to be displayed in the way you choose.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/samvincent/rqrcode-rails3" rel="nofollow" target="_blank" title=""&gt;rqrcode-rails3&lt;/a&gt; - Render QR codes with Rails 3&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DCarper/rqrcode_png" rel="nofollow" target="_blank" title=""&gt;rqrcode_png&lt;/a&gt; - Glues rQRCode together with chunky_png&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;rqr&lt;/a&gt; - A ruby library to create qrcode. Output: PS, JPEG, PNG, EPS, TIFF.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;qrencoder&lt;/a&gt; - This Gem is a wrapper around an useful open-source library for creating QR Codes, a two-dimensional bar code format popular in Japan created by the Denso-Wave Corporation in 1994.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;pngqr&lt;/a&gt; - Ruby Gem to generate PNG files with QR codes in them&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;qrtools&lt;/a&gt; - QRTools is a library for decoding QR Codes. It relies on libdecodeqr for decoding.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Visualizing Data"&gt;Visualizing Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/DmitryBaranovskiy/raphael" rel="nofollow" target="_blank" title=""&gt;Raphael&lt;/a&gt; - JavaScript Vector Library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/glejeune/Ruby-Graphviz" rel="nofollow" target="_blank" title=""&gt;ruby-graphviz&lt;/a&gt; - Ruby/Graphviz provides an interface to layout and generate images of directed graphs in a variety of formats (PostScript, PNG, etc.) using GraphViz.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jashkenas/ruby-processing" rel="nofollow" target="_blank" title=""&gt;Ruby-processing&lt;/a&gt; - Ruby-Processing is a ruby wrapper for the processing-2.0 art framework. This version supports processing-2.2.1, and uses jruby-complete-1.7.25 or an installed jruby as the glue between ruby and java. Use both processing libraries and ruby gems in your sketches. The "watch" mode, provides a nice REPL-ish way to work on your processing sketches. Features a polyglot maven build, opening the way to use/test latest jruby.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="HTML &amp;amp; Markup"&gt;HTML &amp;amp; Markup&lt;/h2&gt;&lt;h3 id="Breadcrumb Builders"&gt;Breadcrumb Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/weppos/breadcrumbs_on_rails" rel="nofollow" target="_blank" title=""&gt;breadcrumbs_on_rails&lt;/a&gt; - BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lassebunk/gretel" rel="nofollow" target="_blank" title=""&gt;gretel&lt;/a&gt; - Gretel is a Ruby on Rails plugin that makes it easy yet flexible to create breadcrumbs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zachinglis/crummy" rel="nofollow" target="_blank" title=""&gt;crummy&lt;/a&gt; - Crummy is a simple and tasty way to add breadcrumbs to your Rails applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/simonc/ariane" rel="nofollow" target="_blank" title=""&gt;ariane&lt;/a&gt; - Ariane is a flexible breadcrumb system for Rails. It is fully compatible with the Twitter Bootstrap and can be adapted to any kind of output.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattmatt/crumble" rel="nofollow" target="_blank" title=""&gt;crumble&lt;/a&gt; - How did these breadcrumbs in your Rails application? Oh right, with this plugin!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Form Builders"&gt;Form Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/simple_form" rel="nofollow" target="_blank" title=""&gt;Simple Form&lt;/a&gt; - Forms made easy!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/justinfrench/formtastic" rel="nofollow" target="_blank" title=""&gt;Formtastic&lt;/a&gt; - A Rails form builder plugin/gem with semantically rich and accessible markup&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/nested_form" rel="nofollow" target="_blank" title=""&gt;nested_form&lt;/a&gt; - Gem to conveniently handle multiple models in a single form with Rails 3 and jQuery or Prototype.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathanvda/cocoon" rel="nofollow" target="_blank" title=""&gt;cocoon&lt;/a&gt; - Unobtrusive nested forms handling, using jQuery. Use this and discover cocoon-heaven.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stouset/twitter_bootstrap_form_for" rel="nofollow" target="_blank" title=""&gt;twitter_bootstrap_form_for&lt;/a&gt; - A custom Rails FormBuilder that assumes the use of Twitter Bootstrap&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/potenza/bootstrap_form" rel="nofollow" target="_blank" title=""&gt;bootstrap_form&lt;/a&gt; - bootstrap_form is a rails form builder that makes it super easy to create beautiful-looking forms using Twitter Bootstrap 3+&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sethvargo/bootstrap_forms" rel="nofollow" target="_blank" title=""&gt;bootstrap_forms&lt;/a&gt; - Bootstrap Forms makes Twitter's Bootstrap on Rails easy to use by creating helpful form builders that minimize markup in your views.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Markup processors"&gt;Markup processors&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/github/markup" rel="nofollow" target="_blank" title=""&gt;Markup&lt;/a&gt; - Small command line tool that reads Markdown files and outputs HTML&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vmg/redcarpet" rel="nofollow" target="_blank" title=""&gt;Redcarpet&lt;/a&gt; - A fast, safe and extensible Markdown to (X)HTML parser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gettalong/kramdown" rel="nofollow" target="_blank" title=""&gt;kramdown&lt;/a&gt; - kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vmg/redcarpet" rel="nofollow" target="_blank" title=""&gt;vkhater-redcarpet&lt;/a&gt; - A fast, safe and extensible Markdown to (X)HTML parser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jgarber/redcloth" rel="nofollow" target="_blank" title=""&gt;RedCloth&lt;/a&gt; - Textile parser for Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rtomayko/rdiscount" rel="nofollow" target="_blank" title=""&gt;Rdiscount&lt;/a&gt; - Fast Implementation of Gruber's Markdown in C&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ged/bluecloth" rel="nofollow" target="_blank" title=""&gt;Bluecloth&lt;/a&gt; - BlueCloth is a Ruby implementation of John Gruber's Markdown[&lt;a href="http://daringfireball.net/projects/markdown/" rel="nofollow" target="_blank"&gt;http://daringfireball.net/projects/markdown/&lt;/a&gt;], a text-to-HTML conversion tool for web writers. To quote from the project page: Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML). It borrows a naming convention and several helpings of interface from {Redcloth}[&lt;a href="http://redcloth.org/" rel="nofollow" target="_blank"&gt;http://redcloth.org/&lt;/a&gt;], Why the Lucky Stiff's processor for a similar text-to-HTML conversion syntax called Textile[&lt;a href="http://www.textism.com/tools/textile/" rel="nofollow" target="_blank"&gt;http://www.textism.com/tools/textile/&lt;/a&gt;]. BlueCloth 2 is a complete rewrite using David Parsons' Discount[&lt;a href="http://www.pell.portland.or.us/~orc/Code/discount/" rel="nofollow" target="_blank"&gt;http://www.pell.portland.or.us/~orc/Code/discount/&lt;/a&gt;] library, a C implementation of Markdown. I rewrote it using the extension for speed and accuracy; the original BlueCloth was a straight port from the Perl version that I wrote in a few days for my own use just to avoid having to shell out to Markdown.pl, and it was quite buggy and slow. I apologize to all the good people that sent me patches for it that were never released. Note that the new gem is called 'bluecloth' and the old one 'BlueCloth'. If you have both installed, you can ensure you're loading the new one with the 'gem' directive:     # Load the 2.0 version  gem 'bluecloth', '&amp;gt;= 2.0.0'         # Load the 1.0 version  gem 'BlueCloth'     require 'bluecloth'&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/alphabetum/pandoc-ruby" rel="nofollow" target="_blank" title=""&gt;pandoc-ruby&lt;/a&gt; - Ruby wrapper for Pandoc&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jjyr/minidown" rel="nofollow" target="_blank" title=""&gt;minidown&lt;/a&gt; - Minidown is a lightweight &amp;amp; fast markdown parser, with complete GFM support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Microformats"&gt;Microformats&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/mofo" rel="nofollow" target="_blank" title=""&gt;Mofo&lt;/a&gt; - mofo is a ruby microformat parser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mwunsch/prism" rel="nofollow" target="_blank" title=""&gt;Prism&lt;/a&gt; - A Ruby microformat parser and HTML toolkit powered by Nokogiri&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Menu Builders"&gt;Rails Menu Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/andi/simple-navigation" rel="nofollow" target="_blank" title=""&gt;Simple-navigation&lt;/a&gt; - With the simple-navigation gem installed you can easily create multilevel navigations for your Rails, Sinatra or Padrino applications. The navigation is defined in a single configuration file. It supports automatic as well as explicit highlighting of the currently active navigation through regular expressions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/twg/active_link_to" rel="nofollow" target="_blank" title=""&gt;active_link_to&lt;/a&gt; - Helpful method when you need to add some logic that figures out if the link (or more often navigation item) is selected based on the current page or other arbitrary condition&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/weppos/tabs_on_rails" rel="nofollow" target="_blank" title=""&gt;tabs_on_rails&lt;/a&gt; - TabsOnRails is a simple Rails plugin for creating tabs and navigation menus.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jejacks0n/navigasmic" rel="nofollow" target="_blank" title=""&gt;Navigasmic&lt;/a&gt; - Use semantic structures to to build beautifully simple navigation structures in Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/techiferous/tabulous" rel="nofollow" target="_blank" title=""&gt;tabulous&lt;/a&gt; - Tabulous provides an easy way to add tabs to your Rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/danielharan/semantic-menu" rel="nofollow" target="_blank" title=""&gt;Semantic-menu&lt;/a&gt; - A plugin to make rails menus easier to write&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fr33z3/semantic_navigation" rel="nofollow" target="_blank" title=""&gt;semantic_navigation&lt;/a&gt; - Simply and customizable navigation in the Ruby on Rails 3 application. Predefined bootstrap renderers&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Wizards"&gt;Rails Wizards&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/schneems/wicked" rel="nofollow" target="_blank" title=""&gt;Wicked&lt;/a&gt; - Wicked is a Rails engine for producing easy wizard controllers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/adkron/actsaswizard" rel="nofollow" target="_blank" title=""&gt;Actsaswizard&lt;/a&gt; - A Rails plugin to make creating a wizard easy and with a lot less code&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeffp/wizardly" rel="nofollow" target="_blank" title=""&gt;Wizardly&lt;/a&gt; - Create wizards from any model in three steps&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Syntax Highlighting"&gt;Syntax Highlighting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubychan/coderay" rel="nofollow" target="_blank" title=""&gt;coderay&lt;/a&gt; - Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jayferd/rouge" rel="nofollow" target="_blank" title=""&gt;rouge&lt;/a&gt; - Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/github/albino" rel="nofollow" target="_blank" title=""&gt;Albino&lt;/a&gt; - Ruby wrapper for pygmentize.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ioquatix/jquery-syntax" rel="nofollow" target="_blank" title=""&gt;Jquery-syntax&lt;/a&gt; - JavaScript client-side syntax highlighting.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/simplabs/highlight" rel="nofollow" target="_blank" title=""&gt;Highlight&lt;/a&gt; - Highlight highlights code in more than 20 languages. It uses the Pygments syntax highlighter and adds a simple Ruby API over it. It also provides helpers for use in your Ruby on Rails views.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/michaeledgar/harsh" rel="nofollow" target="_blank" title=""&gt;Harsh&lt;/a&gt; - Harsh: Another Rails Syntax Highlighter. Ultraviolet-based syntax highlighting for rails, for ERb or Haml. Better than the rest.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arya/tm_syntax_highlighting" rel="nofollow" target="_blank" title=""&gt;Tm syntax highlighting&lt;/a&gt; - a gem to get syntaxhilight via ultraviolet&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Table Builders"&gt;Table Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/bogdan/datagrid" rel="nofollow" target="_blank" title=""&gt;datagrid&lt;/a&gt; - This allows you to easily build datagrid aka data tables with sortable columns and filters&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/leikind/wice_grid" rel="nofollow" target="_blank" title=""&gt;wice_grid&lt;/a&gt; - A Rails grid plugin to create grids with sorting, pagination, and filters generated automatically based on column types. The contents of the cell are up for the developer, just like one does when rendering a collection via a simple table. WiceGrid automates implementation of filters, ordering, paginations, CSV export, and so on. Ruby blocks provide an elegant means for this.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bobbytables/table_cloth" rel="nofollow" target="_blank" title=""&gt;table_cloth&lt;/a&gt; - Table Cloth helps you create tables easily.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jgdavey/tabletastic" rel="nofollow" target="_blank" title=""&gt;tabletastic&lt;/a&gt; - A table builder for active record collections that produces semantically rich and accessible table markup&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lunich/table_for" rel="nofollow" target="_blank" title=""&gt;table_for_collection&lt;/a&gt; - This gem builds HTML-table using given array&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Template Engines"&gt;Template Engines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;erubis&lt;/a&gt; - Erubis is an implementation of eRuby and has the following features: * Very fast, almost three times faster than ERB and about 10% faster than eruby. * Multi-language support (Ruby/PHP/C/Java/Scheme/Perl/Javascript) * Auto escaping support * Auto trimming spaces around '&amp;lt;% %&amp;gt;' * Embedded pattern changeable (default '&amp;lt;% %&amp;gt;') * Enable to handle Processing Instructions (PI) as embedded pattern (ex. '&amp;lt;?rb ... ?&amp;gt;') * Context object available and easy to combine eRuby template with YAML datafile * Print statement available * Easy to extend and customize in subclass * Ruby on Rails support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rtomayko/tilt" rel="nofollow" target="_blank" title=""&gt;Tilt&lt;/a&gt; - Generic interface to multiple Ruby template engines&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/haml/haml" rel="nofollow" target="_blank" title=""&gt;Haml&lt;/a&gt; - Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML that's designed to express the structure of documents in a non-repetitive, elegant, and easy way by using indentation rather than closing tags and allowing Ruby to be embedded with ease. It was originally envisioned as a plugin for Ruby on Rails, but it can function as a stand-alone templating engine.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/slim-template/slim" rel="nofollow" target="_blank" title=""&gt;Slim&lt;/a&gt; - Slim is a template language whose goal is reduce the syntax to the essential parts without becoming cryptic.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Shopify/liquid" rel="nofollow" target="_blank" title=""&gt;Liquid&lt;/a&gt; - A secure, non-evaling end user template engine with aesthetic markup.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/judofyr/temple" rel="nofollow" target="_blank" title=""&gt;temple&lt;/a&gt; - Template compilation framework in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/mustache" rel="nofollow" target="_blank" title=""&gt;Mustache&lt;/a&gt; - Inspired by ctemplate, Mustache is a framework-agnostic way to render logic-free views. As ctemplates says, "It emphasizes separating logic from presentation: it is impossible to embed application logic in this template language. Think of Mustache as a replacement for your views. Instead of views consisting of ERB or HAML with random helpers and arbitrary logic, your views are broken into two parts: a Ruby class and an HTML template.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/leshill/handlebars_assets" rel="nofollow" target="_blank" title=""&gt;handlebars_assets&lt;/a&gt; - A Railties Gem to compile hbs assets&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/spree/deface" rel="nofollow" target="_blank" title=""&gt;deface&lt;/a&gt; - Deface is a library that allows you to customize ERB, Haml and Slim views in a Rails application without editing the underlying view.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zendesk/curly" rel="nofollow" target="_blank" title=""&gt;Curly&lt;/a&gt; - A view layer for your Rails apps that separates structure and logic.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pivotal/erector" rel="nofollow" target="_blank" title=""&gt;Erector&lt;/a&gt; - Erector is a Builder-like view framework, inspired by Markaby but overcoming some of its flaws. In Erector all views are objects, not template files, which allows the full power of object-oriented programming (inheritance, modular decomposition, encapsulation) in views.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/markaby/markaby" rel="nofollow" target="_blank" title=""&gt;Markaby&lt;/a&gt; - _why's markaby templating language&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/markerb" rel="nofollow" target="_blank" title=""&gt;Markerb&lt;/a&gt; - Multipart templates made easy with Markdown + ERb&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/judofyr/parkaby" rel="nofollow" target="_blank" title=""&gt;Parkaby&lt;/a&gt; - ParseTree meets Markaby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ged/Inversion" rel="nofollow" target="_blank" title=""&gt;inversion&lt;/a&gt; - Inversion is a templating system for Ruby. It uses the "Inversion of Control" principle to decouple the contents and structure of templates from the code that uses them, making it easier to separate concerns, keep your tests simple, and avoid polluting scopes with ephemeral data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;PageTemplate&lt;/a&gt; - A simple templating system for Web sites.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/whoward/Cadenza" rel="nofollow" target="_blank" title=""&gt;cadenza&lt;/a&gt; - Powerful text templating language similar to Smarty/Liquid/Django&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;ruty&lt;/a&gt; - A Template-Engine inspired by the jinja engine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="JavaScript"&gt;JavaScript&lt;/h2&gt;&lt;h3 id="JavaScript Runtimes"&gt;JavaScript Runtimes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sstephenson/execjs" rel="nofollow" target="_blank" title=""&gt;ExecJS&lt;/a&gt; - ExecJS lets you run JavaScript code from Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cowboyd/therubyracer" rel="nofollow" target="_blank" title=""&gt;therubyracer&lt;/a&gt; - Call JavaScript code and manipulate JavaScript objects from Ruby. Call Ruby code and manipulate Ruby objects from JavaScript.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="JavaScript Testing"&gt;JavaScript Testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pivotal/jasmine" rel="nofollow" target="_blank" title=""&gt;Jasmine&lt;/a&gt; - Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jquery/testswarm" rel="nofollow" target="_blank" title=""&gt;Testswarm&lt;/a&gt; - Distributed continuous integration testing for JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jfirebaugh/konacha" rel="nofollow" target="_blank" title=""&gt;konacha&lt;/a&gt; - Konacha is a Rails engine that allows you to test your JavaScript with the mocha test framework and chai assertion library. It is similar to Jasmine and Evergreen, but does not attempt to be framework agnostic. By sticking with Rails, Konacha can take full advantage of features such as the asset pipeline and engines.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/relevance/blue-ridge" rel="nofollow" target="_blank" title=""&gt;Blue-ridge&lt;/a&gt; - Framework for  JavaScript Testing (currently a Rails Plugin)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnicklas/evergreen" rel="nofollow" target="_blank" title=""&gt;Evergreen&lt;/a&gt; - Run Jasmine JavaScript unit tests, integrate them into Ruby applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulca/whenever.js" rel="nofollow" target="_blank" title=""&gt;Whenever.js&lt;/a&gt; - A nice little library for writing and implementing web application behavior in javascript that looks like English.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathansobo/screw-unit" rel="nofollow" target="_blank" title=""&gt;Screw-unit&lt;/a&gt; - The Screw Unit server conveniently serves your Screw Unit specs and javascript files and css stylesheets.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/alexyoung/riotjs" rel="nofollow" target="_blank" title=""&gt;Riotjs&lt;/a&gt; - JavaScript unit tests.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jodosha/hanoi" rel="nofollow" target="_blank" title=""&gt;Hanoi&lt;/a&gt; - Automated jQuery tests with QUnit&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="JavaScript Tools"&gt;JavaScript Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sstephenson/sprockets" rel="nofollow" target="_blank" title=""&gt;Sprockets&lt;/a&gt; - Sprockets is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lautis/uglifier" rel="nofollow" target="_blank" title=""&gt;Uglifier&lt;/a&gt; - Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/josh/ruby-coffee-script" rel="nofollow" target="_blank" title=""&gt;coffee-script&lt;/a&gt; - Ruby CoffeeScript is a bridge to the JS CoffeeScript compiler.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gazay/gon" rel="nofollow" target="_blank" title=""&gt;gon&lt;/a&gt; - If you need to send some data to your js files and you don't want to do this with long way trough views and parsing - use this force!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/opal/opal" rel="nofollow" target="_blank" title=""&gt;opal&lt;/a&gt; - Ruby runtime and core library for JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igor-alexandrov/wiselinks" rel="nofollow" target="_blank" title=""&gt;wiselinks&lt;/a&gt; - Wiselinks makes following links and submitting some forms in your web application smarter and faster&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cjohansen/juicer" rel="nofollow" target="_blank" title=""&gt;Juicer&lt;/a&gt; - Resolve dependencies, merge and minify CSS and JavaScript files with Juicer - the command line tool for frontend engineers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kbparagua/paloma" rel="nofollow" target="_blank" title=""&gt;paloma&lt;/a&gt; - Page-specific javascript for Rails done right&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sutto/barista" rel="nofollow" target="_blank" title=""&gt;Barista&lt;/a&gt; - Barista provides simple, integrated support for CoffeeScript in Rack and Rails applications. Much like Compass does for Sass, It also provides Frameworks (bundleable code which can be shared via Gems). Lastly, it also provides a Rack Application (which can be used to server compiled code), a around_filter-style precompiler (as Rack middleware) and simple helpers for rails and Haml. For more details, please see the the README file bundled with it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/opal/opal-rails" rel="nofollow" target="_blank" title=""&gt;opal-rails&lt;/a&gt; - Rails bindings for opal JS engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kugaevsky/mousetrap-rails" rel="nofollow" target="_blank" title=""&gt;mousetrap-rails&lt;/a&gt; - Mousetrap is a javascript library for handling keyboard shortcuts in your web applications. This gem integrates Mousetrap with Rails asset pipeline for easy of use.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/vendorer" rel="nofollow" target="_blank" title=""&gt;vendorer&lt;/a&gt; - Keep your vendor files up to date&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jcoglan/packr" rel="nofollow" target="_blank" title=""&gt;Packr&lt;/a&gt; - Ruby version of Dean Edwards' JavaScript compressor&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jcoglan/jake" rel="nofollow" target="_blank" title=""&gt;Jake&lt;/a&gt; - Build tools for JavaScript projects&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collin/jabs" rel="nofollow" target="_blank" title=""&gt;Jabs&lt;/a&gt; - Inspiredby HAML, SASS and JABL by mr Hampton Catlin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yb66/rack-jquery" rel="nofollow" target="_blank" title=""&gt;rack-jquery&lt;/a&gt; - jQuery CDN script tags and fallback in one neat package. Current version is for jQuery v2.1.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Prototype Replacements"&gt;Prototype Replacements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/aaronchi/jrails" rel="nofollow" target="_blank" title=""&gt;Jrails&lt;/a&gt; - Using jRails, you can get all of the same default Rails helpers for javascript functionality using the lighter jQuery library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CodeOfficer/jquery-ui-rails-helpers" rel="nofollow" target="_blank" title=""&gt;Jquery-ui-rails-helpers&lt;/a&gt; - JQuery UI helpers you can use in your Rails apps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/MadRabbit/right-rails" rel="nofollow" target="_blank" title=""&gt;Right-rails&lt;/a&gt; - RightRails is a RubyOnRails plugin for the RightJS JavaScript framework. It has transparent Prototype helpers replacement, a new RJS generator, the most common ajax operations interface and RightJS own features support like remote files uploading handler, UI, plugins, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails In-Place Editing"&gt;Rails In-Place Editing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/janv/rest_in_place" rel="nofollow" target="_blank" title=""&gt;Rest in place&lt;/a&gt; - A RESTful Inplace-Editor&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bernat/best_in_place" rel="nofollow" target="_blank" title=""&gt;BestInPlace&lt;/a&gt; - BestInPlace is a jQuery script and a Rails helper that provide the method best_in_place to display any object field easily editable for the user by just clicking on it. It supports input data, text data, boolean data and custom dropdown data. It works with RESTful controllers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathanvda/on_the_spot" rel="nofollow" target="_blank" title=""&gt;on_the_spot&lt;/a&gt; - Unobtrusive in place editing, using jEditable; only works in Rails 3&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rakuto/jrails_in_place_editing" rel="nofollow" target="_blank" title=""&gt;Jrails in place editing&lt;/a&gt; - Edit in place plugin for jRails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amerine/in_place_editing" rel="nofollow" target="_blank" title=""&gt;In place editing&lt;/a&gt; - InPlaceEditing plugin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nakajima/better-edit-in-place" rel="nofollow" target="_blank" title=""&gt;Better-edit-in-place&lt;/a&gt; - Easy editing in place for RESTful web apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubymood/jintastic" rel="nofollow" target="_blank" title=""&gt;Jintastic&lt;/a&gt; - jQuery based in-place editor generated by Formtastic&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Maintenance &amp;amp; Monitoring"&gt;Maintenance &amp;amp; Monitoring&lt;/h2&gt;&lt;h3 id="App Instrumentation"&gt;App Instrumentation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/newrelic/rpm" rel="nofollow" target="_blank" title=""&gt;New Relic RPM&lt;/a&gt; - New Relic is a performance management system, developed by New Relic, Inc (&lt;a href="http://www.newrelic.com" rel="nofollow" target="_blank"&gt;http://www.newrelic.com&lt;/a&gt;). New Relic provides you with deep information about the performance of your web application as it runs in production. The New Relic Ruby Agent is dual-purposed as a either a Gem or plugin, hosted on &lt;a href="https://github.com/newrelic/rpm/" rel="nofollow" target="_blank"&gt;https://github.com/newrelic/rpm/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Shopify/dashing" rel="nofollow" target="_blank" title=""&gt;dashing&lt;/a&gt; - This framework lets you build &amp;amp; easily layout dashboards with your own custom widgets. Use it to make a status boards for your ops team, or use it to track signups, conversion rates, or whatever else metrics you'd like to see in one spot. Included with the framework are ready-made widgets for you to use or customize. All of this code was extracted out of a project at Shopify that displays dashboards on TVs around the office.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/charliesome/better_errors" rel="nofollow" target="_blank" title=""&gt;better_errors&lt;/a&gt; - Provides a better error page for Rails and other Rack apps. Includes source code inspection, a live REPL and local/instance variable inspection for all stack frames.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flyerhzm/bullet" rel="nofollow" target="_blank" title=""&gt;bullet&lt;/a&gt; - help to kill N+1 queries and unused eager loading.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulasmuth/fnordmetric" rel="nofollow" target="_blank" title=""&gt;fnordmetric&lt;/a&gt; - FnordMetric is a Ruby Event-Tracking gem on steroids&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dejan/rails_panel" rel="nofollow" target="_blank" title=""&gt;meta_request&lt;/a&gt; - Supporting gem for Rails Panel (Google Chrome extension for Rails development)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peek/peek" rel="nofollow" target="_blank" title=""&gt;peek&lt;/a&gt; - Take a peek into your Rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/josevalim/rails-footnotes" rel="nofollow" target="_blank" title=""&gt;Rails-footnotes&lt;/a&gt; - Every Rails page has footnotes that gives information about your application and links back to your editor.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gottfrois/dashing-rails" rel="nofollow" target="_blank" title=""&gt;dashing-rails&lt;/a&gt; - The exceptionally handsome dashboard framework for Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/scoutapp/scout-plugins" rel="nofollow" target="_blank" title=""&gt;Scout-plugins&lt;/a&gt; - Plugins for the Scout Server Monitoring and Reporting Tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brynary/rack-bug" rel="nofollow" target="_blank" title=""&gt;rack-bug&lt;/a&gt; - Debugging toolbar for Rack applications implemented as middleware&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/eric/metriks" rel="nofollow" target="_blank" title=""&gt;metriks&lt;/a&gt; - An experimental metrics client.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/engineyard/rails_metrics" rel="nofollow" target="_blank" title=""&gt;Rails metrics&lt;/a&gt; - Metrics measurement for your app on top of ActiveSupport::Notifications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pboling/rack-insight" rel="nofollow" target="_blank" title=""&gt;rack-insight&lt;/a&gt; - Debugging toolbar for Rack applications implemented as middleware. Based on logical-insight and rack-bug.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/derailed/rackamole" rel="nofollow" target="_blank" title=""&gt;Rackamole&lt;/a&gt; - Observe your web applications in the wild! == DESCRIPTION&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/twinturbo/harness" rel="nofollow" target="_blank" title=""&gt;harness&lt;/a&gt; - Collect high level application performance metrics and forward them for analysis&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lonelyplanet/fozzie" rel="nofollow" target="_blank" title=""&gt;fozzie&lt;/a&gt; - Gem to make statistics sending from Ruby applications simple and efficient as possible. Currently supports Statsd, and is inspired by the original ruby-statsd gem by Etsy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nearinfinity/system-metrics" rel="nofollow" target="_blank" title=""&gt;system-metrics&lt;/a&gt; - System Metrics is a Rails 3 Engine that provides a clean web interface to the performance metrics instrumented with ActiveSupport::Notifications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igrigorik/slowgrowl" rel="nofollow" target="_blank" title=""&gt;slowgrowl&lt;/a&gt; - Surface slow code paths in your Rails 3 app via Growl / libnotify&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/eric/metriks_server" rel="nofollow" target="_blank" title=""&gt;metriksd&lt;/a&gt; - Server for handling metrics from metriks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/normalocity/how_slow" rel="nofollow" target="_blank" title=""&gt;how_slow&lt;/a&gt; - A gem for collecting Rails application metrics. No server or 3rd party services required.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Exception Notification"&gt;Exception Notification&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/errbit/errbit" rel="nofollow" target="_blank" title=""&gt;Errbit&lt;/a&gt; - The open source error catcher that's Airbrake API compliant&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/airbrake/airbrake" rel="nofollow" target="_blank" title=""&gt;Airbrake&lt;/a&gt; - Airbrake is an online tool that provides robust exception tracking in any of your Ruby applications. In doing so, it allows you to easily review errors, tie an error to an individual piece of code, and trace the cause back to recent changes. The Airbrake dashboard provides easy categorization, searching, and prioritization of exceptions so that when errors occur, your team can quickly determine the root cause. Additionally, this gem includes integrations with such popular libraries and frameworks as Rails, Sinatra, Resque, Sidekiq, Delayed Job, ActiveJob and many more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/smartinez87/exception_notification" rel="nofollow" target="_blank" title=""&gt;Exception notification&lt;/a&gt; - Exception notification for Rails apps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rollbar/rollbar-gem" rel="nofollow" target="_blank" title=""&gt;rollbar&lt;/a&gt; - Easy and powerful exception tracking for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/honeybadger-io/honeybadger-ruby" rel="nofollow" target="_blank" title=""&gt;Honeybadger&lt;/a&gt; - Make managing application errors a more pleasant experience.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bugsnag/bugsnag-ruby" rel="nofollow" target="_blank" title=""&gt;Bugsnag&lt;/a&gt; - Ruby notifier for bugsnag.com&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/toolmantim/toadhopper" rel="nofollow" target="_blank" title=""&gt;Toadhopper&lt;/a&gt; - A base library for Airbrake error reporting&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/exceptional/exceptional" rel="nofollow" target="_blank" title=""&gt;Exceptional&lt;/a&gt; - Exceptional is the Ruby gem for communicating with &lt;a href="http://exceptional.io" rel="nofollow" target="_blank"&gt;http://exceptional.io&lt;/a&gt; (hosted error tracking service). Use it to find out about errors that happen in your live app. It captures lots of helpful information to help you fix the errors.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/MindscapeHQ/raygun4ruby" rel="nofollow" target="_blank" title=""&gt;raygun4ruby&lt;/a&gt; - Ruby Adapter for Raygun.io&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sharagoz/rails_exception_handler" rel="nofollow" target="_blank" title=""&gt;rails_exception_handler&lt;/a&gt; - Exception Handling for Rails 3&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/winton/lilypad" rel="nofollow" target="_blank" title=""&gt;Lilypad&lt;/a&gt; - Hoptoad notifier for rack-based frameworks&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Log Analysis"&gt;Log Analysis&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/logstash/logstash" rel="nofollow" target="_blank" title=""&gt;logstash&lt;/a&gt; - logstash - logs/event transport, processing, management, search.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Graylog2/graylog2-server" rel="nofollow" target="_blank" title=""&gt;Graylog2&lt;/a&gt; - Free and open source log management&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wvanbergen/request-log-analyzer" rel="nofollow" target="_blank" title=""&gt;request-log-analyzer&lt;/a&gt; - Request log analyzer's purpose is to find out how your web application is being used, how it performs and to focus your optimization efforts. This tool will parse all requests in the application's log file and aggregate the information. Once it is finished parsing the log file(s), it will show the requests that take op most server time using various metrics. It can also insert all parsed request information into a database so you can roll your own analysis. It supports Rails-, Merb- and Rack-based applications logs, Apache and Amazon S3 access logs and MySQL slow query logs out of the box, but file formats of other applications can easily be supported by supplying an easy to write log file format definition.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/customink/central_logger" rel="nofollow" target="_blank" title=""&gt;central_logger&lt;/a&gt; - Centralized logging for rails apps using MongoDB. The idea and the core code is from &lt;a href="http://github.com/peburrows/central_logger" rel="nofollow" target="_blank"&gt;http://github.com/peburrows/central_logger&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;log_file&lt;/a&gt; - this is gem is useful to check the log file data in browser&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Logging"&gt;Logging&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/TwP/logging" rel="nofollow" target="_blank" title=""&gt;Logging&lt;/a&gt; - Logging is a flexible logging library for use in Ruby programs based on the design of Java's log4j library. It features a hierarchical logging system, custom level names, multiple output destinations per log event, custom formatting, and more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/colbygk/log4r" rel="nofollow" target="_blank" title=""&gt;log4r&lt;/a&gt; - See also: &lt;a href="http://logging.apache.org/log4j" rel="nofollow" target="_blank"&gt;http://logging.apache.org/log4j&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/roidrage/lograge" rel="nofollow" target="_blank" title=""&gt;lograge&lt;/a&gt; - Tame Rails' multi-line logging into a single line per request&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jordansissel/ruby-cabin" rel="nofollow" target="_blank" title=""&gt;cabin&lt;/a&gt; - This is an experiment to try and make logging more flexible and more consumable. Plain text logs are bullshit, let's emit structured and contextual logs. Metrics, too!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fluent/fluentd.git" rel="nofollow" target="_blank" title=""&gt;fluentd&lt;/a&gt; - Fluentd is an open source data collector designed to scale and simplify log management. It can collect, process and ship many kinds of data in near real-time.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Graylog2/gelf-rb" rel="nofollow" target="_blank" title=""&gt;gelf&lt;/a&gt; - Library to send GELF messages to Graylog logging server. Supports plain-text, GELF messages and exceptions via UDP and TCP.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rudionrails/yell" rel="nofollow" target="_blank" title=""&gt;yell&lt;/a&gt; - Yell - Your Extensible Logging Library. Define multiple adapters, various log level combinations or message formatting options like you've never done before&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/le0pard/mongodb_logger" rel="nofollow" target="_blank" title=""&gt;mongodb_logger&lt;/a&gt; - MongoDB logger for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trusche/httplog" rel="nofollow" target="_blank" title=""&gt;httplog&lt;/a&gt; - Log outgoing HTTP requests made from your application. Helpful for tracking API calls of third party gems that don't provide their own log output.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flyingmachine/whoops" rel="nofollow" target="_blank" title=""&gt;Whoops&lt;/a&gt; - A Rails engine which receives logs and provides an interface for them&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/TwP/logging-rails" rel="nofollow" target="_blank" title=""&gt;logging-rails&lt;/a&gt; - A Railtie for for integrating the &lt;a href="https://github.com/TwP/logging" rel="nofollow" target="_blank" title=""&gt;Logging&lt;/a&gt; framework into your Rails 3 application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Clogger&lt;/a&gt; - clogger is Rack middleware for logging HTTP requests. The log format is customizable so you can specify exactly which fields to log.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Absolventa/best_boy" rel="nofollow" target="_blank" title=""&gt;best_boy&lt;/a&gt; - Hybrid action logging, consisting of standard and custom logging.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;justlogging-rails&lt;/a&gt; - The official justlogging.com gem&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Maintenance Mode"&gt;Maintenance Mode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/biola/turnout" rel="nofollow" target="_blank" title=""&gt;turnout&lt;/a&gt; - Turnout makes it easy to put your Rails application into maintenance mode&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Server Monitoring"&gt;Server Monitoring&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mojombo/god" rel="nofollow" target="_blank" title=""&gt;God&lt;/a&gt; - An easy to configure, easy to extend monitoring framework written in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sensu/sensu" rel="nofollow" target="_blank" title=""&gt;sensu&lt;/a&gt; - A monitoring framework that aims to be simple, malleable, and scalable.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bluepill-rb/bluepill" rel="nofollow" target="_blank" title=""&gt;Bluepill&lt;/a&gt; - Bluepill keeps your daemons up while taking up as little resources as possible. After all you probably want the resources of your server to be used by whatever daemons you are running rather than the thing that's supposed to make sure they are brought back up, should they die or misbehave.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/martinrusev/amonlite" rel="nofollow" target="_blank" title=""&gt;amon&lt;/a&gt; - Elegant server and web application monitoring&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kostya/eye" rel="nofollow" target="_blank" title=""&gt;Eye&lt;/a&gt; - Process monitoring tool. Inspired from Bluepill and God. Requires Ruby(MRI) &amp;gt;= 1.9.3-p194. Uses Celluloid and Celluloid::IO.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vinibaggio/outpost" rel="nofollow" target="_blank" title=""&gt;Outpost&lt;/a&gt; - Simple service monitoring with a clean DSL for configuration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benschwarz/amnesia" rel="nofollow" target="_blank" title=""&gt;Amnesia&lt;/a&gt; - With Amnesia you'll know exactly whats happening with memory when it comes to memcached.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/blythedunham/health_monitor" rel="nofollow" target="_blank" title=""&gt;health_monitor&lt;/a&gt; - Monitor all aspects of your applications health.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bloopletech/webstats" rel="nofollow" target="_blank" title=""&gt;Webstats&lt;/a&gt; - Monitor server CPU/Memory/Disk Usage/URL Loading, so that you can view those statistics on a web page, as well as providing an interface to client prorams to read those statistics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Visage&lt;/a&gt; - Visage is a web interface for viewing collectd statistics. It also provides a JSON interface onto collectd's RRD data, giving you an easy way to mash up the data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;health_checker&lt;/a&gt; - Simple health-checker as rack middleware&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Package &amp;amp; Dependency Management"&gt;Package &amp;amp; Dependency Management&lt;/h2&gt;&lt;h3 id="Bundler Tools"&gt;Bundler Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mpapis/rubygems-bundler" rel="nofollow" target="_blank" title=""&gt;rubygems-bundler&lt;/a&gt; - Stop using bundle exec. Integrate Rubygems and Bundler. Make rubygems generate bundler aware executable wrappers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/appraisal" rel="nofollow" target="_blank" title=""&gt;Appraisal&lt;/a&gt; - Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called "appraisals."&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/guard/guard-bundler" rel="nofollow" target="_blank" title=""&gt;guard-bundler&lt;/a&gt; - Guard::Bundler automatically install/update your gem bundle when needed&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/joshbuddy/noexec" rel="nofollow" target="_blank" title=""&gt;noexec&lt;/a&gt; - Stop using bundle exec.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/versapay/bundler-auto-update" rel="nofollow" target="_blank" title=""&gt;bundler-auto-update&lt;/a&gt; - Attempt to update every single gem of your Gemfile to its latest patch, minor then major release. Runs a test command to ensure the update succeeded&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Dependency Management"&gt;Dependency Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/carlhuda/bundler" rel="nofollow" target="_blank" title=""&gt;Bundler&lt;/a&gt; - Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/RiotGames/berkshelf" rel="nofollow" target="_blank" title=""&gt;berkshelf&lt;/a&gt; - Manages a Cookbook's, or an Application's, Cookbook dependencies&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/applicationsonline/librarian" rel="nofollow" target="_blank" title=""&gt;librarian&lt;/a&gt; - A Framework for Bundlers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evilchelu/braid" rel="nofollow" target="_blank" title=""&gt;Braid&lt;/a&gt; - A simple tool for tracking vendor branches in git.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jbarnette/isolate" rel="nofollow" target="_blank" title=""&gt;Isolate&lt;/a&gt; - Isolate is a very simple RubyGems sandbox. It provides a way to express and automatically install your project's Gem dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/andrew/brewdler" rel="nofollow" target="_blank" title=""&gt;brewdler&lt;/a&gt; - Bundler for non-Ruby dependencies from Homebrew&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/patmaddox/giternal" rel="nofollow" target="_blank" title=""&gt;Giternal&lt;/a&gt; - Giternal provides dead-simple management of external git dependencies. It only stores a small bit of metadata, letting you actively develop in any of the repos. Come deploy time, you can easily freeze freeze all the dependencies to particular versions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/francois/piston" rel="nofollow" target="_blank" title=""&gt;Piston&lt;/a&gt; - Piston makes it easy to merge vendor branches into your own repository, without worrying about which revisions were grabbed or not. Piston will also keep your local changes in addition to the remote changes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/37signals/cached_externals" rel="nofollow" target="_blank" title=""&gt;Cached externals&lt;/a&gt; - Symlink to external dependencies, rather than bloating your repositories with them&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DruRly/gemrat" rel="nofollow" target="_blank" title=""&gt;gemrat&lt;/a&gt; - Add the latest version of a gem to your Gemfile from the command line.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/archan937/motion-bundler" rel="nofollow" target="_blank" title=""&gt;motion-bundler&lt;/a&gt; - Use Ruby gems and mock require statements within RubyMotion applications&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Gem Hosting"&gt;Gem Hosting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/cwninja/geminabox" rel="nofollow" target="_blank" title=""&gt;geminabox&lt;/a&gt; - A sinatra based gem hosting app, with client side gem push style functionality.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/copiousfreetime/stickler" rel="nofollow" target="_blank" title=""&gt;stickler&lt;/a&gt; - Stickler is a tool to organize and maintain an internal gem repository. Primarily, you would want to use Stickler if: 1. You have proprietary gems that you want to have available via a gem server so you may &lt;code&gt;gem install&lt;/code&gt; them. 2. You would like to have a local mirror of third party gems from either &lt;a href="http://rubygems.org" rel="nofollow" target="_blank"&gt;http://rubygems.org&lt;/a&gt; or some other gem server. 3. You want both (1) and (2) in the same server.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gemfury/gemfury" rel="nofollow" target="_blank" title=""&gt;gemfury&lt;/a&gt; - Hosted repo for your public and private packages at &lt;a href="https://gemfury.com" rel="nofollow" target="_blank"&gt;https://gemfury.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Packaging Systems"&gt;Packaging Systems&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Rubygems&lt;/a&gt; - RubyGems is a package management framework for Ruby. This gem is an update for the RubyGems software. You must have an installation of RubyGems before this update can be applied. See Gem for information on RubyGems (or &lt;code&gt;ri Gem&lt;/code&gt;) To upgrade to the latest RubyGems, run: $ gem update --system # you might need to be an administrator or root See UPGRADING.rdoc for more details and alternative instructions. ----- If you don't have RubyGems installed, you can still do it manually: * Download from: &lt;a href="https://rubygems.org/pages/download" rel="nofollow" target="_blank"&gt;https://rubygems.org/pages/download&lt;/a&gt;, unpack, and cd there * OR clone this repository and cd there * Install with: ruby setup.rb # you may need admin/root privilege For more details and other options, see: ruby setup.rb --help&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/rip" rel="nofollow" target="_blank" title=""&gt;Rip&lt;/a&gt; - Rip: Ruby's Intelligent Packaging&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rtomayko/rpg" rel="nofollow" target="_blank" title=""&gt;Rpg&lt;/a&gt; - Fast ruby package management for unix&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mislav/coral" rel="nofollow" target="_blank" title=""&gt;Coral&lt;/a&gt; - Hacker's toolbelt for Ruby, gems, Bundler, git, and more&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/slimgems/slimgems" rel="nofollow" target="_blank" title=""&gt;SlimGems&lt;/a&gt; - SlimGems is a drop-in replacement for RubyGems, a package management framework for Ruby. This project was forked at 1.3.7, which was a great stable release. SlimGems focuses on maintaining a sane and stable API. We believe that the project has been put through enough stress testing by the community to lock into the current API functionality for the forseeable future. We will also continue to improve the runtime performance over time; we can do this without changing the API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Packaging to Executables"&gt;Packaging to Executables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/larsch/ocra" rel="nofollow" target="_blank" title=""&gt;Ocra&lt;/a&gt; - OCRA (One-Click Ruby Application) builds Windows executables from Ruby source code. The executable is a self-extracting, self-running executable that contains the Ruby interpreter, your source code and any additionally needed ruby libraries or DLL.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Spooner/releasy" rel="nofollow" target="_blank" title=""&gt;releasy&lt;/a&gt; - Releasy helps to make Ruby application releases simpler, by creating and archiving source folders, Windows folders, standalone executables, installers and OS X app bundles.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/copiousfreetime/crate" rel="nofollow" target="_blank" title=""&gt;Crate&lt;/a&gt; - Crate is a developer tool to help package up your application as a custom static build of the ruby interpreter plus all dependent binary extensions. All the pure ruby code (the ruby application, the ruby stdlib, etc ) is packed into one or more SQLite databases. The final distributable pieces are a single executable and a few SQLite databases which can be then wrapped up appropriately as an OS X App; a self extracting executable for Windows; a shar archive, rpm or tarball for Unixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Provision, Deploy &amp;amp; Host"&gt;Provision, Deploy &amp;amp; Host&lt;/h2&gt;&lt;h3 id="Amazon Web Services"&gt;Amazon Web Services&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/aws/aws-sdk-ruby" rel="nofollow" target="_blank" title=""&gt;aws-sdk&lt;/a&gt; - The official AWS SDK for Ruby. Provides both resource oriented interfaces and API clients for AWS services.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fog/fog" rel="nofollow" target="_blank" title=""&gt;Fog&lt;/a&gt; - The Ruby cloud services library. Supports all major cloud providers including AWS, Rackspace, Linode, Blue Box, StormOnDemand, and many others. Full support for most AWS services including EC2, S3, CloudWatch, SimpleDB, ELB, and RDS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/marcel/aws-s3" rel="nofollow" target="_blank" title=""&gt;Aws-s3&lt;/a&gt; - Client library for Amazon's Simple Storage Service's REST API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rightscale/right_aws" rel="nofollow" target="_blank" title=""&gt;RightAWS&lt;/a&gt; - == DESCRIPTION: The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront. These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon. The RightScale AWS gems comprise: - RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the associated EBS (Elastic Block Store) - RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage Service) - RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service) (API version 2007-05-01) - RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service) (API version 2008-01-01) - RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB) - RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service == FEATURES: - Full programmmatic access to EC2, EBS, S3, SQS, SDB, and CloudFront. - Complete error handling: all operations check for errors and report complete error information by raising an AwsError. - Persistent HTTP connections with robust network-level retry layer using RightHttpConnection). This includes socket timeouts and retries. - Robust HTTP-level retry layer. Certain (user-adjustable) HTTP errors returned by Amazon's services are classified as temporary errors. These errors are automaticallly retried using exponentially increasing intervals. The number of retries is user-configurable. - Fast REXML-based parsing of responses (as fast as a pure Ruby solution allows). - Uses libxml (if available) for faster response parsing. - Support for large S3 list operations. Buckets and key subfolders containing many (&amp;gt; 1000) keys are listed in entirety. Operations based on list (like bucket clear) work on arbitrary numbers of keys. - Support for streaming GETs from S3, and streaming PUTs to S3 if the data source is a file. - Support for single-threaded usage, multithreaded usage, as well as usage with multiple AWS accounts. - Support for both first- and second-generation SQS (API versions 2007-05-01 and 2008-01-01). These versions of SQS are not compatible. - Support for signature versions 0 and 1 on SQS, SDB, and EC2. - Interoperability with any cloud running Eucalyptus (&lt;a href="http://eucalyptus.cs.ucsb.edu" rel="nofollow" target="_blank"&gt;http://eucalyptus.cs.ucsb.edu&lt;/a&gt;) - Test suite (requires AWS account to do "live" testing).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/qoobaa/s3" rel="nofollow" target="_blank" title=""&gt;S3&lt;/a&gt; - S3 library provides access to Amazon's Simple Storage Service. It supports both: European and US buckets through REST API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grempe/amazon-ec2" rel="nofollow" target="_blank" title=""&gt;Amazon-ec2&lt;/a&gt; - A Ruby library for accessing the Amazon Web Services EC2, ELB, RDS, Cloudwatch, and Autoscaling APIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/drewblas/aws-ses" rel="nofollow" target="_blank" title=""&gt;aws-ses&lt;/a&gt; - Client library for Amazon's Simple Email Service's REST API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/appoxy/aws" rel="nofollow" target="_blank" title=""&gt;AWS&lt;/a&gt; - AWS Ruby Library for interfacing with Amazon Web Services including EC2, S3, SQS, SimpleDB and most of their other services as well. By &lt;a href="http://www.appoxy.com" rel="nofollow" target="_blank"&gt;http://www.appoxy.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/BlissOfBeing/s3_direct_upload" rel="nofollow" target="_blank" title=""&gt;s3_direct_upload&lt;/a&gt; - Direct Upload to Amazon S3 With CORS and jquery-file-upload&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Asset Distribution"&gt;Asset Distribution&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rumblelabs/asset_sync" rel="nofollow" target="_blank" title=""&gt;asset_sync&lt;/a&gt; - After you run assets:precompile your compiled assets will be synchronised with your S3 bucket.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsjedi/jammit-s3" rel="nofollow" target="_blank" title=""&gt;Jammit-S3&lt;/a&gt; - Jammit-S3 is an extension to the awesome Jammit library that handles deployment to s3 and cloudfront.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Asset Management"&gt;Asset Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/documentcloud/jammit" rel="nofollow" target="_blank" title=""&gt;Jammit&lt;/a&gt; - Jammit is an industrial-strength asset packaging library for Rails, providing both the CSS and JavaScript concatenation and compression that you'd expect, as well as YUI Compressor and Closure Compiler compatibility, ahead-of-time gzipping, built-in JavaScript template support, and optional Data-URI / MHTML image embedding.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sbecker/asset_packager" rel="nofollow" target="_blank" title=""&gt;Asset packager&lt;/a&gt; - Minify for rails js and css&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zweilove/css_splitter" rel="nofollow" target="_blank" title=""&gt;css_splitter&lt;/a&gt; - Gem for splitting up stylesheets that go beyond the IE limit of 4095 selectors, for Rails 3.1+ apps using the Asset Pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/d-i/half-pipe" rel="nofollow" target="_blank" title=""&gt;half-pipe&lt;/a&gt; - Grunt-based workflow for your Rails assets&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mintdigital/asset_hat" rel="nofollow" target="_blank" title=""&gt;AssetHat&lt;/a&gt; - Load CSS and JS faster. Minifies, bundles, and optimizes CSS/JS assets ahead of time (e.g., on deploy), not at runtime. Loads popular third-party JS (like jQuery, YUI, and Dojo) from localhost in development, and auto-switches to Google's CDN in production. Lets you switch on LABjs mode to load more scripts in parallel. Can rewrite stylesheets to use CDN hosts (not just your web server) and cache-busting hashes for updated images.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/timcharper/bundle-fu" rel="nofollow" target="_blank" title=""&gt;Bundle-fu&lt;/a&gt; - Ruby on Rails plugin - CSS/JS asset bundling in 10 seconds or less!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thumblemonks/smurf" rel="nofollow" target="_blank" title=""&gt;Smurf&lt;/a&gt; - Rails plugin to automatically minify JS and CSS when their bundles get cached. Send in those patches!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/winton/smart_asset" rel="nofollow" target="_blank" title=""&gt;SmartAsset&lt;/a&gt; - Smart asset packaging for Rails, Sinatra, and Stasis.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Backups"&gt;Backups&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/meskyanichi/backup" rel="nofollow" target="_blank" title=""&gt;Backup&lt;/a&gt; - Backup is a RubyGem, written for UNIX-like operating systems, that allows you to easily perform backup operations on both your remote and local environments. It provides you with an elegant DSL in Ruby for modeling your backups. Backup has built-in support for various databases, storage protocols/services, syncers, compressors, encryptors and notifiers which you can mix and match. It was built with modularity, extensibility and simplicity in mind.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astrails/safe" rel="nofollow" target="_blank" title=""&gt;Astrails-Safe&lt;/a&gt; - Astrails-Safe is a simple tool to backup databases (MySQL and PostgreSQL), Subversion repositories (with svndump) and just files. Backups can be stored locally or remotely and can be enctypted. Remote storage is supported on Amazon S3, Rackspace Cloud Files, or just plain FTP/SFTP.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/copyhacker/backup_fu" rel="nofollow" target="_blank" title=""&gt;Backup fu&lt;/a&gt; - Makes Amazon S3 backups redonkulous. Redonkulously easy, that is.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yob/db2fog" rel="nofollow" target="_blank" title=""&gt;db2fog&lt;/a&gt; - db2fog provides rake tasks for backing up and restoring your DB to cloud storage providers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/xaviershay/db2s3" rel="nofollow" target="_blank" title=""&gt;Db2s3&lt;/a&gt; - db2s3 provides rake tasks for backing up and restoring your DB to S3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Continuous Integration"&gt;Continuous Integration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/travis-ci/travis-ci" rel="nofollow" target="_blank" title=""&gt;Travis CI&lt;/a&gt; - Free continuous integration platform for GitHub projects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtworks/cruisecontrol.rb" rel="nofollow" target="_blank" title=""&gt;Cruisecontrol.rb&lt;/a&gt; - CruiseControl for Ruby. Keep it simple.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/cijoe" rel="nofollow" target="_blank" title=""&gt;Cijoe&lt;/a&gt; - cijoe is a sinatra-based continuous integration server. It's like an old rusty pickup truck: it might be smelly and gross, but it gets the job done.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/integrity/integrity" rel="nofollow" target="_blank" title=""&gt;Integrity&lt;/a&gt; - Your Friendly Continuous Integration server. Easy, fun and painless!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/appelier/bigtuna" rel="nofollow" target="_blank" title=""&gt;Big Tuna&lt;/a&gt; - Continuous Integration software written on top of Ruby on Rails 3 and DelayedJob.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jenkinsci/jenkins.rb" rel="nofollow" target="_blank" title=""&gt;Jenkins.rb&lt;/a&gt; - A suite of utilities for bringing continous integration to your projects (not the other way around) with jenkins CI&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/solanolabs/tddium.git" rel="nofollow" target="_blank" title=""&gt;tddium&lt;/a&gt; - Solano CI runs your test suite simply and quickly in our managed cloud environment. You can run tests by hand, or enable our hosted CI to watch your git repos automatically. Solano CI automatically and safely parallelizes your tests to save you time, and takes care of setting up fresh isolated DB instances for each test thread. Tests have access to a wide variety of databases (postgres, mongo, redis, mysql, memcache), solr, sphinx, selenium/webdriver browsers, webkit and culerity. Solano CI supports all common Ruby test frameworks, including rspec, cucumber, test::unit, and spinach. Solano CI also supports Javascript testing using jasmine, evergreen, and many other frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dcrec1/signal" rel="nofollow" target="_blank" title=""&gt;Signal&lt;/a&gt; - An integration server written in Rails and integrated with metric_fu, rspec, cucumber and maven. Easy to install and easy to use&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/c42/goldberg" rel="nofollow" target="_blank" title=""&gt;goldberg&lt;/a&gt; - CI server with support for pipelines&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/relevance/cap_gun" rel="nofollow" target="_blank" title=""&gt;Cap gun&lt;/a&gt; - Super simple capistrano deployment notifications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cpjolicoeur/cerberus" rel="nofollow" target="_blank" title=""&gt;Cerberus&lt;/a&gt; - Cerberus is a Continuous Integration software for Ruby projects. CI helps you keep your project in a good shape. Cerberus could be easily invoked from Cron (for Unix) or nnCron (for Windows) utilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Deployment Automation"&gt;Deployment Automation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/capistrano/capistrano" rel="nofollow" target="_blank" title=""&gt;Capistrano&lt;/a&gt; - Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/heroku/heroku" rel="nofollow" target="_blank" title=""&gt;Heroku&lt;/a&gt; - Client library and command-line tool to deploy and manage apps on Heroku.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nadarei/mina" rel="nofollow" target="_blank" title=""&gt;mina&lt;/a&gt; - Really fast deployer and server automation tool.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mislav/git-deploy" rel="nofollow" target="_blank" title=""&gt;git-deploy&lt;/a&gt; - A tool to install useful git hooks on your remote repository to enable push-based, Heroku-like deployment on your host.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsmachine/moonshine" rel="nofollow" target="_blank" title=""&gt;Moonshine&lt;/a&gt; - Simple Rails deployment and configuration management. 15 minute deploys of Rails 2, 3, or 4 apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fastestforward/heroku_san" rel="nofollow" target="_blank" title=""&gt;heroku_san&lt;/a&gt; - Manage multiple Heroku instances/apps for a single Rails app using Rake&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/scttnlsn/dandelion" rel="nofollow" target="_blank" title=""&gt;dandelion&lt;/a&gt; - Incremental Git repository deployment&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/vlad" rel="nofollow" target="_blank" title=""&gt;Vlad&lt;/a&gt; - Vlad the Deployer is pragmatic application deployment automation, without mercy. Much like Capistrano, but with 1/10th the complexity. Vlad integrates seamlessly with Rake, and uses familiar and standard tools like ssh and rsync. Impale your application on the heartless spike of the Deployer.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flogic/whiskey_disk" rel="nofollow" target="_blank" title=""&gt;whiskey_disk&lt;/a&gt; - Opinionated gem for doing fast git-based server deployments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbailey/deprec" rel="nofollow" target="_blank" title=""&gt;deprec&lt;/a&gt; - This project provides libraries of Capistrano tasks and extensions to remove the repetative manual work associated with installing services on linux servers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dcrec1/inploy" rel="nofollow" target="_blank" title=""&gt;Inploy&lt;/a&gt; - Rails and Sinatra deployment made easy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsjedi/heroku-rails" rel="nofollow" target="_blank" title=""&gt;heroku-rails&lt;/a&gt; - Manage multiple Heroku instances/apps for a single Rails app using Rake. It's the Capistrano for Heroku, without the suck.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mpalmer/giddyup" rel="nofollow" target="_blank" title=""&gt;giddyup&lt;/a&gt; - Simple web application deployment with "git push"&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/saizai/superdeploy" rel="nofollow" target="_blank" title=""&gt;Superdeploy&lt;/a&gt; - A collection of useful utilities for Capistrano deployments&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattpolito/paratrooper" rel="nofollow" target="_blank" title=""&gt;paratrooper&lt;/a&gt; - Library to create task for deployment to Heroku&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/effkay/blazing" rel="nofollow" target="_blank" title=""&gt;Blazing&lt;/a&gt; - painless git push deployments for everyone&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shellycloud/shelly" rel="nofollow" target="_blank" title=""&gt;shelly&lt;/a&gt; - Tool for managing applications and clouds at shellycloud.com&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nebulab/pulsar" rel="nofollow" target="_blank" title=""&gt;pulsar&lt;/a&gt; - Manage your Capistrano deployments with ease&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/platanus/negroku" rel="nofollow" target="_blank" title=""&gt;negroku&lt;/a&gt; - Deploy applications right out of the box using nginx, unicorn, bower, rails, etc&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="System Provisioning"&gt;System Provisioning&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mitchellh/vagrant" rel="nofollow" target="_blank" title=""&gt;Vagrant&lt;/a&gt; - Vagrant is a tool for building and distributing development environments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puppetlabs/puppet" rel="nofollow" target="_blank" title=""&gt;Puppet&lt;/a&gt; - Puppet, an automated configuration management tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/opscode/chef" rel="nofollow" target="_blank" title=""&gt;Chef&lt;/a&gt; - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benhoskings/babushka" rel="nofollow" target="_blank" title=""&gt;Babushka&lt;/a&gt; - Test-driven sysadmin.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sprinkle-tool/sprinkle" rel="nofollow" target="_blank" title=""&gt;Sprinkle&lt;/a&gt; - Ruby DSL based software provisioning tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benschwarz/passenger-stack" rel="nofollow" target="_blank" title=""&gt;Passenger-stack&lt;/a&gt; - Sprinkles for Apache, Passenger, Memcached, Git, Mysql or Postgres&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pitluga/supply_drop" rel="nofollow" target="_blank" title=""&gt;supply_drop&lt;/a&gt; - See &lt;a href="http://github.com/pitluga/supply_drop" rel="nofollow" target="_blank"&gt;http://github.com/pitluga/supply_drop&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/solutious/rudy" rel="nofollow" target="_blank" title=""&gt;Rudy&lt;/a&gt; - Rudy: Not your grandparents' EC2 deployment tool.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gurgeous/teleport" rel="nofollow" target="_blank" title=""&gt;Teleport&lt;/a&gt; - Easy Ubuntu server setup via teleportation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Web servers"&gt;Web servers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/macournoyer/thin" rel="nofollow" target="_blank" title=""&gt;Thin&lt;/a&gt; - A thin and fast web server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defunkt/unicorn" rel="nofollow" target="_blank" title=""&gt;Unicorn&lt;/a&gt; - unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between unicorn and slow clients.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puma/puma" rel="nofollow" target="_blank" title=""&gt;Puma&lt;/a&gt; - Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications. Puma is intended for use in both development and production environments. In order to get the best throughput, it is highly recommended that you use a Ruby implementation with real threads like Rubinius or JRuby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/phusion/passenger" rel="nofollow" target="_blank" title=""&gt;Passenger&lt;/a&gt; - A modern web server and application server for Ruby, Python and Node.js, optimized for performance, low memory usage and ease of use.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/37signals/pow" rel="nofollow" target="_blank" title=""&gt;Pow&lt;/a&gt; - Manipulating files and directories in Ruby is boring and tedious -- it's missing POW! Pow treats files and directories as ruby objects giving you more power and flexibility.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mongrel/mongrel" rel="nofollow" target="_blank" title=""&gt;Mongrel&lt;/a&gt; - A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trinidad/trinidad" rel="nofollow" target="_blank" title=""&gt;Trinidad&lt;/a&gt; - Trinidad allows you to run Rails or Rack applications within an embedded Apache Tomcat container. Serves your requests with the elegance of a cat !&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pyromaniac/hoof" rel="nofollow" target="_blank" title=""&gt;Hoof&lt;/a&gt; - Hoof is linux variant of pow. It's based on nss, eventmachine and unicorn&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ry/ebb" rel="nofollow" target="_blank" title=""&gt;Ebb&lt;/a&gt; - A Web Server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ged/ruby-mongrel2" rel="nofollow" target="_blank" title=""&gt;mongrel2&lt;/a&gt; - Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[&lt;a href="http://mongrel2.org/" rel="nofollow" target="_blank"&gt;http://mongrel2.org/&lt;/a&gt;]. This library includes configuration-database ORM classes, a Ruby implementation of the 'm2sh' tool, a configuration DSL for generating config databases in pure Ruby, a Control port interface object, and handler classes for creating applications or higher-level frameworks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Rails Plugins"&gt;Rails Plugins&lt;/h2&gt;&lt;h3 id="Rails Activity Feeds"&gt;Rails Activity Feeds&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pokonski/public_activity" rel="nofollow" target="_blank" title=""&gt;public_activity&lt;/a&gt; - Easy activity tracking for your ActiveRecord models. Provides Activity model with details about actions performed by your users, like adding comments, responding etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamesgolick/timeline_fu" rel="nofollow" target="_blank" title=""&gt;TimelineFu&lt;/a&gt; - Easily build timelines, much like GitHub's news feed&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ledermann/unread" rel="nofollow" target="_blank" title=""&gt;unread&lt;/a&gt; - This gem creates a scope for unread objects and adds methods to mark objects as read&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/parolkar/pfeed" rel="nofollow" target="_blank" title=""&gt;Pfeed&lt;/a&gt; - A rails plugin that allows you to create extensible log of activity&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/christospappas/streama" rel="nofollow" target="_blank" title=""&gt;streama&lt;/a&gt; - Streama is a simple activity stream gem for use with the Mongoid ODM framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/krisleech/chalk-dust" rel="nofollow" target="_blank" title=""&gt;chalk_dust&lt;/a&gt; - Subscribe to and build activity feeds for your models, for example followings and friendships&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Admin Interfaces"&gt;Rails Admin Interfaces&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/activeadmin/activeadmin" rel="nofollow" target="_blank" title=""&gt;ActiveAdmin&lt;/a&gt; - The administration framework for Ruby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sferik/rails_admin" rel="nofollow" target="_blank" title=""&gt;Rails Admin&lt;/a&gt; - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/activescaffold/active_scaffold" rel="nofollow" target="_blank" title=""&gt;ActiveScaffold&lt;/a&gt; - Save time and headaches, and create a more easily maintainable set of pages, with ActiveScaffold. ActiveScaffold handles all your CRUD (create, read, update, delete) user interface needs, leaving you more time to focus on more challenging (and interesting!) problems.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fesplugas/typus" rel="nofollow" target="_blank" title=""&gt;Typus&lt;/a&gt; - Ruby on Rails Admin Panel (Engine) to allow trusted users edit structured content.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/relevance/streamlined" rel="nofollow" target="_blank" title=""&gt;Streamlined&lt;/a&gt; - &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/puffer/puffer" rel="nofollow" target="_blank" title=""&gt;Puffer&lt;/a&gt; - Admin interface builder&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/acesuares/inline_forms" rel="nofollow" target="_blank" title=""&gt;inline_forms&lt;/a&gt; - Inline Forms aims to ease the setup of forms that provide inline editing. The field list can be specified in the model.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fhwang/admin_assistant" rel="nofollow" target="_blank" title=""&gt;Admin assistant&lt;/a&gt; - admin_assistant is a Rails plugin that automates a lot of features typically needed in admin interfaces.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codez/dry_crud" rel="nofollow" target="_blank" title=""&gt;dry_crud&lt;/a&gt; - Generates simple and extendable controller, views and helpers that support you to DRY up the CRUD code in your Rails project. Start with these elements and build a clean base to efficiently develop your application upon.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/commondream/control_center" rel="nofollow" target="_blank" title=""&gt;Control center&lt;/a&gt; - Easy Admin Interfaces for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/leschenko/ab_admin" rel="nofollow" target="_blank" title=""&gt;ab_admin&lt;/a&gt; - Simple and real-life tested Rails::Engine admin interface&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mcasimir/fullstack-admin" rel="nofollow" target="_blank" title=""&gt;fullstack-admin&lt;/a&gt; - Administration interface framework for fullstack&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails App Templates"&gt;Rails App Templates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/suspenders" rel="nofollow" target="_blank" title=""&gt;Suspenders&lt;/a&gt; - Suspenders is a base Rails project that you can upgrade. It is used by thoughtbot to get a jump start on a working app. Use Suspenders if you're in a rush to build something amazing; don't use it if you like missing deadlines.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/RailsApps/rails_apps_composer" rel="nofollow" target="_blank" title=""&gt;rails_apps_composer&lt;/a&gt; - A gem with recipes to create Rails application templates you can use to generate Rails starter apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jm/rails-templates" rel="nofollow" target="_blank" title=""&gt;Rails-templates&lt;/a&gt; - A library of neat Rails application templates.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ffmike/BigOldRailsTemplate" rel="nofollow" target="_blank" title=""&gt;Bigoldrailstemplate&lt;/a&gt; - Heavyweight template for Rails 2.3.x&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kfaustino/rails-templater" rel="nofollow" target="_blank" title=""&gt;rails_templater&lt;/a&gt; - Template generator for Ruby on Rails 3 applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/quickleft/prologue" rel="nofollow" target="_blank" title=""&gt;Prologue&lt;/a&gt; - Generate a Rails 3 app with application templates Quick Left uses to start their projects off right!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/iboard/CBA" rel="nofollow" target="_blank" title=""&gt;CBA&lt;/a&gt; - Community Base Application Template&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/imajes/rails-template" rel="nofollow" target="_blank" title=""&gt;Rails-template&lt;/a&gt; - based on the awesome rg by mrn&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lab2023/cybele" rel="nofollow" target="_blank" title=""&gt;cybele&lt;/a&gt; - Rails 4.x template with responder, simple form, haml, exception notification, etc etc ...&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;appscrolls&lt;/a&gt; - The App Scrolls is a magical tool to generate new Rails and modify existing Rails applications (coming) to include your favourite, powerful magic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Class Diagrams"&gt;Rails Class Diagrams&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/voormedia/rails-erd" rel="nofollow" target="_blank" title=""&gt;rails-erd&lt;/a&gt; - Automatically generate an entity-relationship diagram (ERD) for your Rails models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/preston/railroady" rel="nofollow" target="_blank" title=""&gt;railroady&lt;/a&gt; - Ruby on Rails 3/4 model and controller UML class diagram generator. Originally based on the 'railroad' plugin and contributions of many others. (&lt;code&gt;brew install graphviz&lt;/code&gt; before use!)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails File Uploads"&gt;Rails File Uploads&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/paperclip" rel="nofollow" target="_blank" title=""&gt;Paperclip&lt;/a&gt; - Easy upload management for ActiveRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnicklas/carrierwave" rel="nofollow" target="_blank" title=""&gt;Carrierwave&lt;/a&gt; - Upload files in your Ruby applications, map them to a range of ORMs, store them on different backends.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/attachment_fu" rel="nofollow" target="_blank" title=""&gt;Attachment fu&lt;/a&gt; - Treat an ActiveRecord model as a file attachment, storing its patch, size, content type, etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/markevans/dragonfly" rel="nofollow" target="_blank" title=""&gt;Dragonfly&lt;/a&gt; - Dragonfly is a framework that enables on-the-fly processing for any content type. It is especially suited to image handling. Its uses range from image thumbnails to standard attachments to on-demand text generation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elabs/refile" rel="nofollow" target="_blank" title=""&gt;refile&lt;/a&gt; - Simple and powerful file upload library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/semaperepelitsa/jquery.fileupload-rails" rel="nofollow" target="_blank" title=""&gt;jquery.fileupload-rails&lt;/a&gt; - This gem packages jQuery File Upload plugin and it's dependencies for Rails asset pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tobi/imagery" rel="nofollow" target="_blank" title=""&gt;Imagery&lt;/a&gt; - Clean &amp;amp; light interface around GraphicsMagick.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Permalinks &amp;amp; Slugs"&gt;Rails Permalinks &amp;amp; Slugs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/FriendlyId/friendly_id" rel="nofollow" target="_blank" title=""&gt;FriendlyId&lt;/a&gt; - FriendlyId is the "Swiss Army bulldozer" of slugging and permalink plugins for Active Record. It lets you create pretty URLs and work with human-friendly strings as if they were numeric ids.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsl/stringex" rel="nofollow" target="_blank" title=""&gt;Stringex&lt;/a&gt; - Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to ASCII transliteration], and StringExtensions [miscellaneous helper methods for the String class].&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/norman/babosa" rel="nofollow" target="_blank" title=""&gt;Babosa&lt;/a&gt; - A library for creating slugs. Babosa an extraction and improvement of the string code from FriendlyId, intended to help developers create similar libraries or plugins.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/permalink_fu" rel="nofollow" target="_blank" title=""&gt;Permalink fu&lt;/a&gt; - Automatically convert fields to permalinks&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/namick/obfuscate_id" rel="nofollow" target="_blank" title=""&gt;ObfuscateId&lt;/a&gt; - Make your ActiveRecord IDs non-obvious&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jumph4x/canonical-rails" rel="nofollow" target="_blank" title=""&gt;canonical-rails&lt;/a&gt; - Configurable, but assumes a conservative strategy by default with a goal to solve many search engine index problems: multiple hostnames, inbound links with arbitrary parameters, trailing slashes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sutto/slugged" rel="nofollow" target="_blank" title=""&gt;slugged&lt;/a&gt; - Super simple slugs for ActiveRecord 3.0 and higher, with support for slug history&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Presenters"&gt;Rails Presenters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/drapergem/draper" rel="nofollow" target="_blank" title=""&gt;Draper&lt;/a&gt; - Draper adds an object-oriented layer of presentation logic to your Rails apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/apotonick/cells" rel="nofollow" target="_blank" title=""&gt;Cells&lt;/a&gt; - Cells replaces partials and helpers with OOP view models, giving you proper encapsulation, inheritance, testability and a cleaner view architecture.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amatsuda/active_decorator" rel="nofollow" target="_blank" title=""&gt;ActiveDecorator&lt;/a&gt; - A simple and Rubyish view helper for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/apotonick/apotomo" rel="nofollow" target="_blank" title=""&gt;Apotomo&lt;/a&gt; - Web component framework for Rails providing widgets that trigger events and know when and how to update themselves with AJAX.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamesgolick/active_presenter" rel="nofollow" target="_blank" title=""&gt;Active presenter&lt;/a&gt; - ActivePresenter is the presenter library you already know! (...if you know ActiveRecord)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/objects-on-rails/display-case" rel="nofollow" target="_blank" title=""&gt;display_case&lt;/a&gt; - An implementation of the Exhibit pattern, as described in Objects on Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ihoka/viewtastic" rel="nofollow" target="_blank" title=""&gt;Viewtastic&lt;/a&gt; - Presenter plugin for Ruby on Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/felipeelias/resubject" rel="nofollow" target="_blank" title=""&gt;resubject&lt;/a&gt; - Uber simple presenters&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dfmonaco/rails_presenter" rel="nofollow" target="_blank" title=""&gt;rails_presenter&lt;/a&gt; - Presenters for Rails applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pothibo/cubisme" rel="nofollow" target="_blank" title=""&gt;cubisme&lt;/a&gt; - Easy to understand decorator.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Subdomains"&gt;Rails Subdomains&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/subdomain-fu" rel="nofollow" target="_blank" title=""&gt;Subdomain-fu&lt;/a&gt; - SubdomainFu is a Rails plugin to provide all of the basic functionality necessary to handle multiple subdomain applications (such as Basecamp-esque subdomain accounts and more).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mholling/subdomain_routes" rel="nofollow" target="_blank" title=""&gt;Subdomain routes&lt;/a&gt; - SubdomainRoutes add subdomain conditions to the Rails routing system. Routes may be restricted to one or many specified subdomains. An URL will be recognised only if the host subdomain matches the subdomain specified in the route. Route generation is also enhanced, so that the subdomain of a generated URL (or path) will be changed if the requested route has a different subdomain to that of the current request. Model-based subdomain routes can also be defined.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shuber/subdomain_account" rel="nofollow" target="_blank" title=""&gt;Subdomain account&lt;/a&gt; - A rails plugin that handles subdomain accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Recommendation Engines"&gt;Recommendation Engines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulasmuth/recommendify" rel="nofollow" target="_blank" title=""&gt;recommendify&lt;/a&gt; - Recommendify is a distributed, incremental item-based recommendation engine for binary input ratings. It's based on ruby and redis and uses an approach called "Collaborative Filtering"&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/davidcelis/recommendable" rel="nofollow" target="_blank" title=""&gt;recommendable&lt;/a&gt; - A Like/Dislike recommendation engine for Ruby apps using Redis.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/diogenes/coletivo" rel="nofollow" target="_blank" title=""&gt;coletivo&lt;/a&gt; - An awesome, flexible, powerful, useful, tricky and liar Rails 3 recommendations engine.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ashleyw/Slope-One" rel="nofollow" target="_blank" title=""&gt;Slope One&lt;/a&gt; - Implementation of the weighted Slope One collaborative filtering/recommendation algorithm.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Reputation Engines"&gt;Reputation Engines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/twitter/activerecord-reputation-system" rel="nofollow" target="_blank" title=""&gt;activerecord-reputation-system&lt;/a&gt; - ActiveRecord Reputation System gem allows rails apps to compute and publish reputation scores for active record models.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tute/merit" rel="nofollow" target="_blank" title=""&gt;merit&lt;/a&gt; - Manage badges, points and rankings (reputation) in your Rails app.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="State Machines"&gt;State Machines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pluginaweek/state_machine" rel="nofollow" target="_blank" title=""&gt;State machine&lt;/a&gt; - Adds support for creating state machines for attributes on any Ruby class&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/aasm/aasm" rel="nofollow" target="_blank" title=""&gt;AASM&lt;/a&gt; - AASM is a continuation of the acts-as-state-machine rails plugin, built for plain Ruby objects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geekq/workflow" rel="nofollow" target="_blank" title=""&gt;Workflow&lt;/a&gt; - Workflow is a finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as 'workflow'. * nice DSL to describe your states, events and transitions * robust integration with ActiveRecord and non relational data stores * various hooks for single transitions, entering state etc. * convenient access to the workflow specification: list states, possible events for particular state&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gocardless/statesman" rel="nofollow" target="_blank" title=""&gt;statesman&lt;/a&gt; - A statesmanlike state machine library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/troessner/transitions" rel="nofollow" target="_blank" title=""&gt;Transitions&lt;/a&gt; - Lightweight state machine extracted from ActiveModel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmettraux/ruote" rel="nofollow" target="_blank" title=""&gt;Ruote&lt;/a&gt; - ruote is an open source Ruby workflow engine&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/soveran/micromachine" rel="nofollow" target="_blank" title=""&gt;micromachine&lt;/a&gt; - There are many finite state machine implementations for Ruby, and they all provide a nice DSL for declaring events, exceptions, callbacks, and all kinds of niceties in general. But if all you want is a finite state machine, look no further: this has less than 50 lines of code and provides everything a finite state machine must have, and nothing more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanza/stateflow" rel="nofollow" target="_blank" title=""&gt;stateflow&lt;/a&gt; - State machine that allows dynamic transitions for business workflows&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/svenfuchs/simple_states" rel="nofollow" target="_blank" title=""&gt;simple_states&lt;/a&gt; - [description]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/avdi/alter-ego" rel="nofollow" target="_blank" title=""&gt;Alter-ego&lt;/a&gt; - AlterEgo is a Ruby implementation of the State pattern as described by the Gang of Four. It differs from other Ruby state machine libraries in that it focuses on providing polymorphic behavior based on object state. In effect, it makes it easy to give an object different personalities depending on the state it is in.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="User Messaging Systems"&gt;User Messaging Systems&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ging/mailboxer" rel="nofollow" target="_blank" title=""&gt;mailboxer&lt;/a&gt; - A Rails engine that allows any model to act as messageable, adding the ability to exchange messages with any other messageable model, even different ones. It supports the use of conversations with two or more recipients to organize the messages. You have a complete use of a mailbox object for each messageable model that manages an inbox, sentbox and trash for conversations. It also supports sending notifications to messageable models, intended to be used as system notifications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/frodefi/rails-messaging" rel="nofollow" target="_blank" title=""&gt;rails-messaging&lt;/a&gt; - Rails Simple User Messaging System, work also with Refinery CMS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/LTe/acts-as-messageable" rel="nofollow" target="_blank" title=""&gt;acts-as-messageable&lt;/a&gt; - Make user messageable!;-)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sandglaz/maktoub" rel="nofollow" target="_blank" title=""&gt;maktoub&lt;/a&gt; - A simple newsletter engine for rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/evrone/inboxes" rel="nofollow" target="_blank" title=""&gt;inboxes&lt;/a&gt; - Messaging system for Rails 3 app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pivotal/cacheable_flash" rel="nofollow" target="_blank" title=""&gt;cacheable_flash&lt;/a&gt; - Allows caching of pages with flash messages by rendering flash messages from a cookie using JavaScript, instead of statically in your Rails view template. Flash contents are converted to JSON and placed in a cookie by an after_filter (default) or a Rack Middleware (option).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tonissimo/growlyflash" rel="nofollow" target="_blank" title=""&gt;growlyflash&lt;/a&gt; - This gem popups Rails' ActionDispatch::Flash within Bootstrap alert like a growl notification. It serves messages with both of AJAX (XHR) and regular requests inside HTTP headers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Security"&gt;Security&lt;/h2&gt;&lt;h3 id="Encryption"&gt;Encryption&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/shuber/attr_encrypted" rel="nofollow" target="_blank" title=""&gt;Attr encrypted&lt;/a&gt; - Generates attr_accessors that encrypt and decrypt attributes transparently&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/spikex/strongbox" rel="nofollow" target="_blank" title=""&gt;Strongbox&lt;/a&gt; - Strongbox provides Public Key Encryption for ActiveRecord. By using a public key sensitive information can be encrypted and stored automatically. Once stored a password is required to access the information. dependencies are specified in standard Ruby syntax.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmazzi/crypt_keeper" rel="nofollow" target="_blank" title=""&gt;crypt_keeper&lt;/a&gt; - Transparent ActiveRecord encryption&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ClarityServices/symmetric-encryption" rel="nofollow" target="_blank" title=""&gt;symmetric-encryption&lt;/a&gt; - Transparently encrypt ActiveRecord, Mongoid, and MongoMapper attributes. Encrypt passwords in configuration files. Encrypt entire files at rest.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/larskanis/pkcs11" rel="nofollow" target="_blank" title=""&gt;pkcs11&lt;/a&gt; - This module allows Ruby programs to interface with "RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki)".&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="LDAP"&gt;LDAP&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-ldap/ruby-net-ldap" rel="nofollow" target="_blank" title=""&gt;net-ldap&lt;/a&gt; - Net::LDAP for Ruby (also called net-ldap) implements client access for the Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing distributed directory services. Net::LDAP is written completely in Ruby with no external dependencies. It supports most LDAP client features and a subset of server features as well. Net::LDAP has been tested against modern popular LDAP servers including OpenLDAP and Active Directory. The current release is mostly compliant with earlier versions of the IETF LDAP RFCs (2251-2256, 2829-2830, 3377, and 3771). Our roadmap for Net::LDAP 1.0 is to gain full &amp;lt;em&amp;gt;client&amp;lt;/em&amp;gt; compliance with the most recent LDAP RFCs (4510-4519, plutions of 4520-4532).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cschiewek/devise_ldap_authenticatable" rel="nofollow" target="_blank" title=""&gt;Devise ldap authenticatable&lt;/a&gt; - Devise extension to allow authentication via LDAP&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/omniauth-ldap" rel="nofollow" target="_blank" title=""&gt;omniauth-ldap&lt;/a&gt; - A LDAP strategy for OmniAuth.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/binarylogic/authlogic_ldap" rel="nofollow" target="_blank" title=""&gt;Authlogic ldap&lt;/a&gt; - An extension of Authlogic to add LDAP authentication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Authentication"&gt;Rails Authentication&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/devise" rel="nofollow" target="_blank" title=""&gt;Devise&lt;/a&gt; - Flexible authentication solution for Rails with Warden&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/omniauth" rel="nofollow" target="_blank" title=""&gt;OmniAuth&lt;/a&gt; - A generalized Rack framework for multiple-provider authentication.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/binarylogic/authlogic" rel="nofollow" target="_blank" title=""&gt;Authlogic&lt;/a&gt; - A clean, simple, and unobtrusive ruby authentication solution.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/technoweenie/restful-authentication" rel="nofollow" target="_blank" title=""&gt;Restful-authentication&lt;/a&gt; - Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NoamB/sorcery" rel="nofollow" target="_blank" title=""&gt;Sorcery&lt;/a&gt; - Provides common authentication needs such as signing in/out, activating by email and resetting password.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/clearance" rel="nofollow" target="_blank" title=""&gt;Clearance&lt;/a&gt; - Rails authentication &amp;amp; authorization with email &amp;amp; password.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/applicake/doorkeeper" rel="nofollow" target="_blank" title=""&gt;doorkeeper&lt;/a&gt; - Doorkeeper is an OAuth 2 provider for Rails and Grape.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flyerhzm/switch_user" rel="nofollow" target="_blank" title=""&gt;switch_user&lt;/a&gt; - Easily switch current user to speed up development&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/socialcast/devise_oauth2_providable" rel="nofollow" target="_blank" title=""&gt;devise_oauth2_providable&lt;/a&gt; - Rails3 engine that adds OAuth2 Provider support to any application built with Devise authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/rpx_now" rel="nofollow" target="_blank" title=""&gt;Rpx now&lt;/a&gt; - Helper to simplify RPX Now user login/creation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/halogenandtoast/monban" rel="nofollow" target="_blank" title=""&gt;monban&lt;/a&gt; - simple rails authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Arcath/Adauth" rel="nofollow" target="_blank" title=""&gt;adauth&lt;/a&gt; - A full featured library for working with Microsofts Active Directory in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/biola/rack-cas" rel="nofollow" target="_blank" title=""&gt;rack-cas&lt;/a&gt; - Simple CAS authentication for Rails, Sinatra or any Rack-based site&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/GBH/letmein" rel="nofollow" target="_blank" title=""&gt;letmein&lt;/a&gt; - minimalistic authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/envylabs/BlueLightSpecial" rel="nofollow" target="_blank" title=""&gt;Bluelightspecial&lt;/a&gt; - A gem providing Rails with authentication, Facebook Connect, MadMimi, and DelayedJob support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/userbin/userbin-ruby" rel="nofollow" target="_blank" title=""&gt;userbin&lt;/a&gt; - Secure your application with multi-factor authentication, user activity monitoring, and real-time threat protection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Authorization"&gt;Rails Authorization&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/cancan" rel="nofollow" target="_blank" title=""&gt;Cancan&lt;/a&gt; - Simple authorization solution for Rails which is decoupled from user roles. All permissions are stored in a single location.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elabs/pundit" rel="nofollow" target="_blank" title=""&gt;pundit&lt;/a&gt; - Object oriented authorization for Rails applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CanCanCommunity/cancancan" rel="nofollow" target="_blank" title=""&gt;cancancan&lt;/a&gt; - Continuation of the simple authorization solution for Rails which is decoupled from user roles. All permissions are stored in a single location.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/RolifyCommunity/rolify" rel="nofollow" target="_blank" title=""&gt;rolify&lt;/a&gt; - Very simple Roles library without any authorization enforcement supporting scope on resource objects (instance or class). Supports ActiveRecord and Mongoid ORMs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stffn/declarative_authorization" rel="nofollow" target="_blank" title=""&gt;Declarative authorization&lt;/a&gt; - declarative_authorization is a Rails plugin for maintainable authorization based on readable authorization rules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathanl/authority" rel="nofollow" target="_blank" title=""&gt;authority&lt;/a&gt; - Authority helps you authorize actions in your Rails app. It's ORM-neutral and has very little fancy syntax; just group your models under one or more Authorizer classes and write plain Ruby methods on them.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/be9/acl9" rel="nofollow" target="_blank" title=""&gt;Acl9&lt;/a&gt; - Role-based authorization system for Rails with a concise DSL for securing your Rails application. Acl9 makes it easy to get security right for your app, the access control code sits right in your controller, the syntax is very easy to understand, and acl9 makes it easy to test your access rules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/the-teacher/the_role" rel="nofollow" target="_blank" title=""&gt;the_role&lt;/a&gt; - Authorization gem for Ruby on Rails with Management Panel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/timcharper/role_requirement" rel="nofollow" target="_blank" title=""&gt;Role requirement&lt;/a&gt; - Simple role based security for restful_authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am no longer involved in this project. If you are interested in becoming the new maintainer and making it your own, please contact me. I will no longer be responding to bug reports or questions.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Tim&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/randx/six" rel="nofollow" target="_blank" title=""&gt;six&lt;/a&gt; - Very simple authorization gem&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/martinrehfeld/role_model" rel="nofollow" target="_blank" title=""&gt;role_model&lt;/a&gt; - Ever needed to assign roles to a model, say a User, and build conditional behaviour on top of that? Enter RoleModel -- roles have never been easier! Just declare your roles and you are done. Assigned roles will be stored as a bitmask.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kristianmandrup/cantango" rel="nofollow" target="_blank" title=""&gt;cantango&lt;/a&gt; - Define your permission rules as role- or role group specific permits. Integrates well with multiple Devise user acounts. Includes rules caching. Store permissions in yaml file or key-value store&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kristianmandrup/cream" rel="nofollow" target="_blank" title=""&gt;Cream&lt;/a&gt; - An integrated Authentication, Authorization and Roles solution for your Rails 3 app with support for multiple ORMs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/canable" rel="nofollow" target="_blank" title=""&gt;Canable&lt;/a&gt; - Simple permissions that I have used on my last several projects so I figured it was time to abstract and wrap up into something more easily reusable.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/inossidabile/protector" rel="nofollow" target="_blank" title=""&gt;protector&lt;/a&gt; - Comfortable (seriously) white-list security restrictions for models on a field level&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/makandra/aegis" rel="nofollow" target="_blank" title=""&gt;Aegis&lt;/a&gt; - Aegis is an authorization solution for Ruby on Rails that supports roles and a RESTish, resource-style declaration of permission rules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/platform45/easy_roles" rel="nofollow" target="_blank" title=""&gt;easy_roles&lt;/a&gt; - Easy role authorization in rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/makandra/consul" rel="nofollow" target="_blank" title=""&gt;consul&lt;/a&gt; - A scope-based authorization solution for Ruby on Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/james2m/canard" rel="nofollow" target="_blank" title=""&gt;canard&lt;/a&gt; - Wraps CanCan and RoleModel up to make role based authorisation really easy in Rails 3.x.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ProtectedMethod/restful_acl" rel="nofollow" target="_blank" title=""&gt;Restful acl&lt;/a&gt; - A Ruby on Rails plugin that provides fine grained access control to RESTful resources.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/baldwindavid/padlock_authorization" rel="nofollow" target="_blank" title=""&gt;Padlock authorization&lt;/a&gt; - Simple object-based role authorization in Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dnagir/allowy" rel="nofollow" target="_blank" title=""&gt;allowy&lt;/a&gt; - Allowy provides CanCan-like way of checking permission but doesn't enforce a tight DSL giving you more control&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/10to1/roleify" rel="nofollow" target="_blank" title=""&gt;Roleify&lt;/a&gt; - Rails authorization plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Captcha"&gt;Rails Captcha&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ambethia/recaptcha" rel="nofollow" target="_blank" title=""&gt;Recaptcha&lt;/a&gt; - Helpers for the reCAPTCHA API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/subwindow/negative-captcha" rel="nofollow" target="_blank" title=""&gt;Negative-captcha&lt;/a&gt; - A plugin to make the process of creating a negative captcha in Rails much less painful&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/galetahub/simple-captcha" rel="nofollow" target="_blank" title=""&gt;galetahub-simple_captcha&lt;/a&gt; - SimpleCaptcha is available to be used with Rails 3 or above and also it provides the backward compatibility with previous versions of Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kiskolabs/humanizer" rel="nofollow" target="_blank" title=""&gt;humanizer&lt;/a&gt; - reCAPTCHA was too much for us, so we created this. Simplest captcha ever.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsanheim/brain_buster" rel="nofollow" target="_blank" title=""&gt;Brain buster&lt;/a&gt; - BrainBuster - a logic captcha for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seejohnrun/gotcha" rel="nofollow" target="_blank" title=""&gt;Gotcha&lt;/a&gt; - A smart captcha library&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Security Tools"&gt;Security Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/flavorjones/loofah" rel="nofollow" target="_blank" title=""&gt;Loofah&lt;/a&gt; - Loofah is a general library for manipulating and transforming HTML/XML documents and fragments. It's built on top of Nokogiri and libxml2, so it's fast and has a nice API. Loofah excels at HTML sanitization (XSS prevention). It includes some nice HTML sanitizers, which are based on HTML5lib's whitelist, so it most likely won't make your codes less secure. (These statements have not been evaluated by Netexperts.) ActiveRecord extensions for sanitization are available in the &lt;code&gt;loofah-activerecord&lt;/code&gt; gem (see &lt;a href="https://github.com/flavorjones/loofah-activerecord" rel="nofollow" target="_blank"&gt;https://github.com/flavorjones/loofah-activerecord&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/presidentbeef/brakeman" rel="nofollow" target="_blank" title=""&gt;brakeman&lt;/a&gt; - Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/heapsource/active_model_otp" rel="nofollow" target="_blank" title=""&gt;active_model_otp&lt;/a&gt; - Adds methods to set and authenticate against one time passwords. Inspired in AM::SecurePassword"&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/relevance/tarantula" rel="nofollow" target="_blank" title=""&gt;Tarantula&lt;/a&gt; - Tarantula is a big fuzzy spider. It crawls your Rails 2.3 and 3.x applications, fuzzing data to see what breaks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/look/xss_terminate" rel="nofollow" target="_blank" title=""&gt;Xss terminate&lt;/a&gt; - xss_terminate is a plugin in that makes stripping and sanitizing HTML stupid-simple. Install and forget. And forget about forgetting to h() your output, because you won‘t need to anymore.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nov/json-jwt" rel="nofollow" target="_blank" title=""&gt;json-jwt&lt;/a&gt; - JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON Web Key) in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/NZKoz/rails_xss" rel="nofollow" target="_blank" title=""&gt;Rails xss&lt;/a&gt; - This plugin replaces the default ERB template handlers with erubis, and switches the behaviour to escape by default rather than requiring you to escape. This is consistent with the behaviour in Rails 3.0.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mhartl/find_mass_assignment" rel="nofollow" target="_blank" title=""&gt;Find mass assignment&lt;/a&gt; - Find likely mass assignment vulnerabilities&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cjbottaro/param_protected" rel="nofollow" target="_blank" title=""&gt;Param protected&lt;/a&gt; - Provides two class methods on ActiveController::Base that filter the params hash for that controller's actions. You can think of them as the controller analog of attr_protected and attr_accessible.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codesake/codesake_dawn" rel="nofollow" target="_blank" title=""&gt;codesake-dawn&lt;/a&gt; - Codesake::Dawn is a security source code scanner for ruby powered code. Starting from January 07, 2015 this gem is renamed to dawnscanner and this version is no longer supported. Please, upgrade your Gemfile.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Spam Detection"&gt;Spam Detection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/joshfrench/rakismet" rel="nofollow" target="_blank" title=""&gt;Rakismet&lt;/a&gt; - Rakismet is the easiest way to integrate Akismet or TypePad's AntiSpam into your Rails app.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;Akismetor&lt;/a&gt; - Spam protection with Akismet and Typepad&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dvyjones/defender" rel="nofollow" target="_blank" title=""&gt;Defender&lt;/a&gt; - ActiveModel plugin for Defensio.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Testing"&gt;Testing&lt;/h2&gt;&lt;h3 id="A/B Testing"&gt;A/B Testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/andrew/split" rel="nofollow" target="_blank" title=""&gt;Split&lt;/a&gt; - Rack based split testing framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/assaf/vanity" rel="nofollow" target="_blank" title=""&gt;Vanity&lt;/a&gt; - Mirror, mirror on the wall ...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulmars/seven_minute_abs" rel="nofollow" target="_blank" title=""&gt;seven_minute_abs&lt;/a&gt; - ab testing for rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bmuller/bandit" rel="nofollow" target="_blank" title=""&gt;bandit&lt;/a&gt; - Bandit provides a way to do multi-armed bandit optimization of alternatives in a rails website&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bryanwoods/ABingo" rel="nofollow" target="_blank" title=""&gt;ABingo&lt;/a&gt; - &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/xing/absurdity" rel="nofollow" target="_blank" title=""&gt;absurdity&lt;/a&gt; - Absurdly simple a/b testing&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Acceptance Test Frameworks"&gt;Acceptance Test Frameworks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/cucumber/cucumber" rel="nofollow" target="_blank" title=""&gt;Cucumber&lt;/a&gt; - Behaviour Driven Development with elegance and joy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnicklas/turnip" rel="nofollow" target="_blank" title=""&gt;Turnip&lt;/a&gt; - Provides the ability to define steps and run Gherkin files from with RSpec&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cavalle/steak" rel="nofollow" target="_blank" title=""&gt;Steak&lt;/a&gt; - Steak is a minimal extension of RSpec-Rails that adds several conveniences to do acceptance testing of Rails applications using Capybara. It's an alternative to Cucumber in plain Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codegram/spinach" rel="nofollow" target="_blank" title=""&gt;Spinach&lt;/a&gt; - Spinach is a BDD framework on top of gherkin&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elight/coulda" rel="nofollow" target="_blank" title=""&gt;Coulda&lt;/a&gt; - Behaviour Driven Development derived from Cucumber but as an internal DSL with methods for reuse&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/solutious/stella" rel="nofollow" target="_blank" title=""&gt;Stella&lt;/a&gt; - Define realistic testplans and run them against your webapps&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hashrocket/unencumbered" rel="nofollow" target="_blank" title=""&gt;Unencumbered&lt;/a&gt; - You got Cucumber in my RSpec!&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;bewildr&lt;/a&gt; - Test WPF UI apps with IronRuby&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Browser testing"&gt;Browser testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnicklas/capybara" rel="nofollow" target="_blank" title=""&gt;Capybara&lt;/a&gt; - Capybara is an integration testing tool for rack based web applications. It simulates how a user would interact with a website&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seleniumhq/selenium" rel="nofollow" target="_blank" title=""&gt;selenium-webdriver&lt;/a&gt; - WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jonleighton/poltergeist" rel="nofollow" target="_blank" title=""&gt;poltergeist&lt;/a&gt; - Poltergeist is a driver for Capybara that allows you to run your tests on a headless WebKit browser, provided by PhantomJS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/capybara-webkit" rel="nofollow" target="_blank" title=""&gt;capybara-webkit&lt;/a&gt; - Headless Webkit driver for Capybara&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brynary/webrat" rel="nofollow" target="_blank" title=""&gt;Webrat&lt;/a&gt; - Webrat lets you quickly write expressive and robust acceptance tests for a Ruby web application. It supports simulating a browser inside a Ruby process to avoid the performance hit and browser dependency of Selenium or Watir, but the same API can also be used to drive real Selenium tests when necessary (eg. for testing AJAX interactions). Most Ruby web frameworks and testing frameworks are supported.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/leonid-shevtsov/headless" rel="nofollow" target="_blank" title=""&gt;headless&lt;/a&gt; - Headless is a Ruby interface for Xvfb. It allows you to create a headless display straight from Ruby code, hiding some low-level action.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/watir/watir-webdriver" rel="nofollow" target="_blank" title=""&gt;watir-webdriver&lt;/a&gt; - WebDriver-backed Watir&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/natritmeyer/site_prism" rel="nofollow" target="_blank" title=""&gt;SitePrism&lt;/a&gt; - SitePrism gives you a simple, clean and semantic DSL for describing your site using the Page Object Model pattern, for use with Capybara&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/langalex/culerity" rel="nofollow" target="_blank" title=""&gt;Culerity&lt;/a&gt; - Culerity integrates Cucumber and Celerity in order to test your application's full stack.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/watir/watir" rel="nofollow" target="_blank" title=""&gt;Watir&lt;/a&gt; - Automated testing tool for web applications. By Testers. For Testers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jarib/celerity" rel="nofollow" target="_blank" title=""&gt;Celerity&lt;/a&gt; - Celerity is a JRuby wrapper around HtmlUnit â€“ a headless Java browser with JavaScript support. It provides a simple API for programmatic navigation through web applications. Celerity provides a superset of Watir's API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ph7/selenium-client" rel="nofollow" target="_blank" title=""&gt;Selenium-client&lt;/a&gt; - Official Ruby Client for Selenium RC.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bernerdschaefer/akephalos" rel="nofollow" target="_blank" title=""&gt;Akephalos&lt;/a&gt; - Headless Browser for Integration Testing with Capybara&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paytonrules/selenium-on-rails" rel="nofollow" target="_blank" title=""&gt;Selenium-on-rails&lt;/a&gt; - The "official" Selenium On Rails repository, synced with OpenQA.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Continuous Testing"&gt;Continuous Testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/guard/guard" rel="nofollow" target="_blank" title=""&gt;Guard&lt;/a&gt; - Guard is a command line tool to easily handle events on file system modifications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/guard/guard-rspec" rel="nofollow" target="_blank" title=""&gt;guard-rspec&lt;/a&gt; - Guard::RSpec automatically run your specs (much like autotest).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/zentest" rel="nofollow" target="_blank" title=""&gt;ZenTest&lt;/a&gt; - ZenTest provides 4 different tools: zentest, unit_diff, autotest, and multiruby. zentest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. zentest only works with Ruby and Minitest or Test::Unit. There is enough evidence to show that this is still proving useful to users, so it stays. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. Do note that minitest 2.2+ provides an enhanced assert_equal obviating the need for unit_diff autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Use multiruby_setup to manage your installed versions. &lt;em&gt;NOTE:&lt;/em&gt; The next major release of zentest will not include autotest (use minitest-autotest instead) and multiruby will use rbenv / ruby-build for version management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mynyml/watchr" rel="nofollow" target="_blank" title=""&gt;Watchr&lt;/a&gt; - Modern continious testing (flexible alternative to autotest).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/johnbintz/rack-livereload" rel="nofollow" target="_blank" title=""&gt;rack-livereload&lt;/a&gt; - Insert LiveReload into your app easily as Rack middleware&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/autotest" rel="nofollow" target="_blank" title=""&gt;Autotest&lt;/a&gt; - This is a stub gem to fix the confusion caused by autotest being part of the ZenTest suite.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/alloy/kicker" rel="nofollow" target="_blank" title=""&gt;Kicker&lt;/a&gt; - Allows you to fire specific command on file-system change.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/svoop/autotest-growl" rel="nofollow" target="_blank" title=""&gt;autotest-growl&lt;/a&gt; - This gem aims to improve support for Growl notifications by autotest.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/svoop/autotest-fsevent" rel="nofollow" target="_blank" title=""&gt;autotest-fsevent&lt;/a&gt; - Autotest relies on filesystem polling to detect modifications in source code files. This is expensive for the CPU, harddrive and battery - and unnecesary on Mac OS X 10.5 or higher which comes with the very efficient FSEvent core service for this very purpose. This gem teaches autotest how to use FSEvent.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunaku/tork" rel="nofollow" target="_blank" title=""&gt;tork&lt;/a&gt; - Runs your tests as they change, in parallel.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/commondream/tconsole" rel="nofollow" target="_blank" title=""&gt;tconsole&lt;/a&gt; - tconsole allows Rails developers to easily and quickly run their tests as a whole or in subsets. It forks the testing processes from a preloaded test environment to ensure that developers don't have to reload their entire Rails environment between test runs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tomas-stefano/infinity_test" rel="nofollow" target="_blank" title=""&gt;Infinity Test&lt;/a&gt; - Infinity Test is a continuous testing library and a flexible alternative to Autotest, using Watchr library with RSpec, Test::Unit or Bacon with RVM funcionality, giving the possibility to test with all Rubies that you have in your RVM configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Cucumber Steps"&gt;Cucumber Steps&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/bmabey/email-spec" rel="nofollow" target="_blank" title=""&gt;email_spec&lt;/a&gt; - Easily test email in RSpec, Cucumber, and MiniTest&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cucumber/aruba" rel="nofollow" target="_blank" title=""&gt;aruba&lt;/a&gt; - Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing commandline applications meaningful, easy and fun.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ianwhite/pickle" rel="nofollow" target="_blank" title=""&gt;pickle&lt;/a&gt; - Easy model creation and reference in your cucumber features&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/makandra/cucumber_factory" rel="nofollow" target="_blank" title=""&gt;Cucumber Factory&lt;/a&gt; - Cucumber Factory allows you to create ActiveRecord models from your Cucumber features without writing step definitions for each model.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Cucumber Tools"&gt;Cucumber Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/versapay/viewcumber" rel="nofollow" target="_blank" title=""&gt;viewcumber&lt;/a&gt; - Cucumber formatter for easily viewing each step of your scenarios&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/auxesis/cucumber-nagios" rel="nofollow" target="_blank" title=""&gt;cucumber-nagios&lt;/a&gt; - cucumber-nagios helps you write behavioural tests for your systems and infrastructure, that can be plugged into Nagios.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/burtlo/yard-cucumber" rel="nofollow" target="_blank" title=""&gt;yard-cucumber&lt;/a&gt; - YARD-Cucumber is a YARD extension that processes Cucumber Features, Scenarios, Steps, Step Definitions, Transforms, and Tags and provides a documentation interface that allows you easily view and investigate the test suite. This tools hopes to bridge the gap of being able to provide your feature descriptions to your Product Owners and Stakeholders.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bernd/cucumber-sinatra" rel="nofollow" target="_blank" title=""&gt;cucumber-sinatra&lt;/a&gt; - This little gem will help you to initialize a cucumber environment for a sinatra application. It will generate the required files from templates.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mocoso/cucumber-screenshot" rel="nofollow" target="_blank" title=""&gt;cucumber-screenshot&lt;/a&gt; - Extension for Cucumber (&lt;a href="http://cukes.info/" rel="nofollow" target="_blank"&gt;http://cukes.info/&lt;/a&gt;) that makes it easy to take HTML snapshots and also to use Webkit to capture PNG screenshots of your web application during tests&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Distributed Testing"&gt;Distributed Testing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jonleighton/spring" rel="nofollow" target="_blank" title=""&gt;spring&lt;/a&gt; - Preloads your application so things like console, rake and tests run faster&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/parallel_tests" rel="nofollow" target="_blank" title=""&gt;Parallel tests&lt;/a&gt; - Run Test::Unit / RSpec / Cucumber / Spinach in parallel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sporkrb/spork" rel="nofollow" target="_blank" title=""&gt;Spork&lt;/a&gt; - A forking Drb spec server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/burke/zeus" rel="nofollow" target="_blank" title=""&gt;zeus&lt;/a&gt; - Boot any rails app in under a second&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ngauthier/hydra" rel="nofollow" target="_blank" title=""&gt;Hydra&lt;/a&gt; - Project Hydra Stack Dependencies&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jstorimer/spin" rel="nofollow" target="_blank" title=""&gt;Spin&lt;/a&gt; - Spin preloads your Rails environment to speed up your autotest(ish) workflow. By preloading your Rails environment for testing you don't load the same code over and over and over... Spin works best for an autotest(ish) workflow.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tmm1/test-queue" rel="nofollow" target="_blank" title=""&gt;test-queue&lt;/a&gt; - minitest/rspec parallel test runner for CI environments&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brynary/testjour" rel="nofollow" target="_blank" title=""&gt;Testjour&lt;/a&gt; - Distributed test running with autodiscovery via Bonjour (for Cucumber first)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sandro/specjour" rel="nofollow" target="_blank" title=""&gt;Specjour&lt;/a&gt; - Specjour splits your RSpec suite across multiple machines, and multiple cores per machine, to run super-parallel-fast! Also works with Cucumber.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/qxjit/deep-test" rel="nofollow" target="_blank" title=""&gt;Deep-test&lt;/a&gt; - Parallel and Distributed Test Runner for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/joakimk/testbot" rel="nofollow" target="_blank" title=""&gt;Testbot&lt;/a&gt; - Testbot is a test distribution tool that works with Rails, RSpec, RSpec2, Test::Unit and Cucumber.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sevos/zeus-parallel_tests" rel="nofollow" target="_blank" title=""&gt;zeus-parallel_tests&lt;/a&gt; - Integration for zeus and parallel_tests&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Mocking"&gt;Mocking&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rspec/rspec-mocks" rel="nofollow" target="_blank" title=""&gt;rspec-mocks&lt;/a&gt; - RSpec's 'test double' framework, with support for stubbing and mocking&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/freerange/mocha" rel="nofollow" target="_blank" title=""&gt;Mocha&lt;/a&gt; - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/causes/mock_redis.git" rel="nofollow" target="_blank" title=""&gt;mock_redis&lt;/a&gt; - Instantiate one with &lt;code&gt;redis = MockRedis.new&lt;/code&gt; and treat it like you would a normal Redis object. It supports all the usual Redis operations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rr/rr" rel="nofollow" target="_blank" title=""&gt;RR&lt;/a&gt; - RR is a test double framework that features a rich selection of double techniques and a terse syntax.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jimweirich/flexmock" rel="nofollow" target="_blank" title=""&gt;Flexmock&lt;/a&gt; - FlexMock is a extremely simple mock object class compatible with the Minitest framework. Although the FlexMock's interface is simple, it is very flexible.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/psyho/bogus" rel="nofollow" target="_blank" title=""&gt;bogus&lt;/a&gt; - Decreases the need to write integration tests by ensuring that the things you stub or mock actually exist.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/frodsan/mocoso" rel="nofollow" target="_blank" title=""&gt;mocoso&lt;/a&gt; - A simple stub &amp;amp; mock library.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Mocking Web Requests"&gt;Mocking Web Requests&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/bblimke/webmock" rel="nofollow" target="_blank" title=""&gt;Webmock&lt;/a&gt; - WebMock allows stubbing HTTP requests and setting expectations on HTTP requests.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vcr/vcr" rel="nofollow" target="_blank" title=""&gt;VCR&lt;/a&gt; - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/appendto/jquery-mockjax" rel="nofollow" target="_blank" title=""&gt;Jquery-mockjax&lt;/a&gt; - The jQuery Mockjax Plugin provides a simple and extremely flexible interface for mocking or simulating ajax requests and responses&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chrisk/fakeweb" rel="nofollow" target="_blank" title=""&gt;Fakeweb&lt;/a&gt; - FakeWeb is a helper for faking web requests in Ruby. It works at a global level, without modifying code or writing extensive stubs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wycats/artifice" rel="nofollow" target="_blank" title=""&gt;Artifice&lt;/a&gt; - Replaces Net::HTTP with a subclass that routes all requests to a Rack application&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/artemave/REST-assured" rel="nofollow" target="_blank" title=""&gt;rest-assured&lt;/a&gt; - Real stubs and spies for HTTP(S) services&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chrisyoung/netrecorder" rel="nofollow" target="_blank" title=""&gt;Netrecorder&lt;/a&gt; - Record network responses for easy stubbing of external calls&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jugyo/mocktra" rel="nofollow" target="_blank" title=""&gt;mocktra&lt;/a&gt; - A webmock DSL using sinatra.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Fixture Replacement"&gt;Rails Fixture Replacement&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/factory_girl" rel="nofollow" target="_blank" title=""&gt;Factory Girl&lt;/a&gt; - factory_girl provides a framework and DSL for defining and using factories - less error-prone, more explicit, and all-around easier to work with than fixtures.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/notahat/machinist" rel="nofollow" target="_blank" title=""&gt;Machinist&lt;/a&gt; - Fixtures aren't fun. Machinist is.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/paulelliott/fabrication" rel="nofollow" target="_blank" title=""&gt;Fabrication&lt;/a&gt; - Fabrication is an object generation framework for ActiveRecord, Mongoid, DataMapper, Sequel, or any other Ruby object.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rdy/fixture_builder" rel="nofollow" target="_blank" title=""&gt;FixtureBuilder&lt;/a&gt; - FixtureBuilder allows testers to use their existing factories, like FactoryGirl, to generate high performance fixtures that can be shared across all your tests&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flogic/object_daddy" rel="nofollow" target="_blank" title=""&gt;Object daddy&lt;/a&gt; - Fixture killer&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sinsiliux/Blueprints" rel="nofollow" target="_blank" title=""&gt;Blueprints&lt;/a&gt; - The ultimate DRY and fast solution to loading test data in Ruby and Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stephencelis/miniskirt" rel="nofollow" target="_blank" title=""&gt;miniskirt&lt;/a&gt; - Test::Unit begot MiniTest; factory_girl begets Miniskirt.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/markburns/to_factory" rel="nofollow" target="_blank" title=""&gt;to_factory&lt;/a&gt; - Autogenerate and append/create factory_girl definitions from the console&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Random Data Generation"&gt;Random Data Generation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/stympy/faker" rel="nofollow" target="_blank" title=""&gt;Faker&lt;/a&gt; - Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/emmanueloga/ffaker" rel="nofollow" target="_blank" title=""&gt;ffaker&lt;/a&gt; - Ffaker generates dummy data.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sevenwire/forgery" rel="nofollow" target="_blank" title=""&gt;Forgery&lt;/a&gt; - Easy and customizable generation of forged data. Can be used as a gem or a rails plugin. Includes rails generators for creating your own forgeries.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/benburkert/randexp" rel="nofollow" target="_blank" title=""&gt;Randexp&lt;/a&gt; - Library for generating random strings from regular expressions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tomharris/random_data" rel="nofollow" target="_blank" title=""&gt;Random data&lt;/a&gt; - Random data generator&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunitparekh/data-anonymization" rel="nofollow" target="_blank" title=""&gt;data-anonymization&lt;/a&gt; - Data anonymization tool for RDBMS and MongoDB databases&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Testing Rails Engines"&gt;Testing Rails Engines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pat/combustion" rel="nofollow" target="_blank" title=""&gt;combustion&lt;/a&gt; - Test your Rails Engines without needing a full Rails app&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Test::Unit Extensions"&gt;Test::Unit Extensions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/shoulda" rel="nofollow" target="_blank" title=""&gt;Shoulda&lt;/a&gt; - Making tests easy on the fingers and eyes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jm/context" rel="nofollow" target="_blank" title=""&gt;Context&lt;/a&gt; - A super tight library to add contexts to tests.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/citrusbyte/contest" rel="nofollow" target="_blank" title=""&gt;Contest&lt;/a&gt; - Write declarative tests using nested contexts without performance penalties. Contest is less than 100 lines of code and gets the job done.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Time Warping"&gt;Time Warping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/travisjeffery/timecop" rel="nofollow" target="_blank" title=""&gt;Timecop&lt;/a&gt; - A gem providing "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code. It provides a unified method to mock Time.now, Date.today, and DateTime.now in a single call.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bebanjo/delorean" rel="nofollow" target="_blank" title=""&gt;Delorean&lt;/a&gt; - Delorean lets you travel in time with Ruby by mocking Time.now&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/harvesthq/time-warp" rel="nofollow" target="_blank" title=""&gt;time-warp&lt;/a&gt; - TimeWarp is a ruby library for manipulating times in automated tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Unit Test Frameworks"&gt;Unit Test Frameworks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/seattlerb/minitest" rel="nofollow" target="_blank" title=""&gt;Minitest&lt;/a&gt; - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking. "I had a class with Jim Weirich on testing last week and we were allowed to choose our testing frameworks. Kirk Haines and I were paired up and we cracked open the code for a few test frameworks... I MUST say that minitest is &lt;em&gt;very&lt;/em&gt; readable / understandable compared to the 'other two' options we looked at. Nicely done and thank you for helping us keep our mental sanity." -- Wayne E. Seguin minitest/test is a small and incredibly fast unit testing framework. It provides a rich set of assertions to make your tests clean and readable. minitest/spec is a functionally complete spec engine. It hooks onto minitest/test and seamlessly bridges test assertions over to spec expectations. minitest/benchmark is an awesome way to assert the performance of your algorithms in a repeatable manner. Now you can assert that your newb co-worker doesn't replace your linear algorithm with an exponential one! minitest/mock by Steven Baker, is a beautifully tiny mock (and stub) object framework. minitest/pride shows pride in testing and adds coloring to your test output. I guess it is an example of how to write IO pipes too. :P minitest/test is meant to have a clean implementation for language implementors that need a minimal set of methods to bootstrap a working test suite. For example, there is no magic involved for test-case discovery. "Again, I can't praise enough the idea of a testing/specing framework that I can actually read in full in one sitting!" -- Piotr Szotkowski Comparing to rspec: rspec is a testing DSL. minitest is ruby. -- Adam Hawkins, "Bow Before MiniTest" minitest doesn't reinvent anything that ruby already provides, like: classes, modules, inheritance, methods. This means you only have to learn ruby to use minitest and all of your regular OO practices like extract-method refactorings still apply.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rspec/rspec" rel="nofollow" target="_blank" title=""&gt;RSpec&lt;/a&gt; - BDD for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/test-unit/test-unit" rel="nofollow" target="_blank" title=""&gt;test-unit&lt;/a&gt; - Test::Unit (test-unit) is unit testing framework for Ruby, based on xUnit principles. These were originally designed by Kent Beck, creator of extreme programming software development methodology, for Smalltalk's SUnit. It allows writing tests, checking results and automated testing in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chneukirchen/bacon" rel="nofollow" target="_blank" title=""&gt;Bacon&lt;/a&gt; - Bacon is a small RSpec clone weighing less than 350 LoC but nevertheless providing all essential features. &lt;a href="http://github.com/chneukirchen/bacon" rel="nofollow" target="_blank"&gt;http://github.com/chneukirchen/bacon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sconover/wrong" rel="nofollow" target="_blank" title=""&gt;Wrong&lt;/a&gt; - Wrong provides a general assert method that takes a predicate block. Assertion failure messages are rich in detail. The Wrong idea is to replace all those countless assert_this, assert_that library methods which only exist to give a more useful failure message than "assertion failed". Wrong replaces all of them in one fell swoop, since if you can write it in Ruby, Wrong can make a sensible failure message out of it. Also provided are several helper methods, like rescuing, capturing, and d.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thumblemonks/riot" rel="nofollow" target="_blank" title=""&gt;Riot&lt;/a&gt; - An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks. Protest the slow test.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geemus/shindo" rel="nofollow" target="_blank" title=""&gt;Shindo&lt;/a&gt; - Work with your tests, not against them.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peterc/testrocket" rel="nofollow" target="_blank" title=""&gt;testrocket&lt;/a&gt; - A super lightweight lamdba-based testing library for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tablatom/rubydoctest" rel="nofollow" target="_blank" title=""&gt;rubydoctest&lt;/a&gt; - Ruby version of Python's doctest tool, but a bit different.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ahoward/testy" rel="nofollow" target="_blank" title=""&gt;Testy&lt;/a&gt; - testy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/spicycode/micronaut" rel="nofollow" target="_blank" title=""&gt;Micronaut&lt;/a&gt; - An excellent replacement for the wheel...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/redding/assert" rel="nofollow" target="_blank" title=""&gt;assert&lt;/a&gt; - Assertion style testing framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Time &amp;amp; Space"&gt;Time &amp;amp; Space&lt;/h2&gt;&lt;h3 id="Calendars"&gt;Calendars&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/icalendar/icalendar" rel="nofollow" target="_blank" title=""&gt;icalendar&lt;/a&gt; - Implements the iCalendar specification (RFC-5545) in Ruby. This allows for the generation and parsing of .ics files, which are used by a variety of calendaring applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elevation/event_calendar" rel="nofollow" target="_blank" title=""&gt;Event calendar&lt;/a&gt; - Generates HTML event calendars&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubyredrick/ri_cal" rel="nofollow" target="_blank" title=""&gt;ri_cal&lt;/a&gt; - A new Ruby implementation of RFC2445 iCalendar. The existing Ruby iCalendar libraries (e.g. icalendar, vpim) provide for parsing and generating icalendar files, but do not support important things like enumerating occurrences of repeating events. This is a clean-slate implementation of RFC2445. A Google group for discussion of this library has been set up &lt;a href="http://groups.google.com/group/rical_gem" rel="nofollow" target="_blank"&gt;http://groups.google.com/group/rical_gem&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/topfunky/calendar_helper" rel="nofollow" target="_blank" title=""&gt;Calendar helper&lt;/a&gt; - A simple helper for creating an HTML calendar. The "calendar" method will be automatically available to your Rails view templates, or can be used with Sinatra or other webapps. There is also a Rails generator that copies some stylesheets for use alone or alongside existing stylesheets.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dmix/weekly_builder" rel="nofollow" target="_blank" title=""&gt;Weekly builder&lt;/a&gt; - A Rails view helper for creating weekly calendars (horizontal scrolling), inspired by TableBuilder.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/has_calendar" rel="nofollow" target="_blank" title=""&gt;Has calendar&lt;/a&gt; - A view helper that creates a calendar using a table. You can easily add events with any content.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/clemens/later_dude" rel="nofollow" target="_blank" title=""&gt;Later dude&lt;/a&gt; - LaterDude is a small calendar helper plugin for Rails with i18n support.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lafourmi/calendrier" rel="nofollow" target="_blank" title=""&gt;calendrier&lt;/a&gt; - simple calendar gem, including helpers to display objects inside cells&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Geocoding &amp;amp; Maps"&gt;Geocoding &amp;amp; Maps&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/alexreisner/geocoder" rel="nofollow" target="_blank" title=""&gt;Geocoder&lt;/a&gt; - Provides object geocoding (by street or IP address), reverse geocoding (coordinates to street address), distance queries for ActiveRecord and Mongoid, result caching, and more. Designed for Rails but works with Sinatra and other Rack frameworks too.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geokit/geokit" rel="nofollow" target="_blank" title=""&gt;Geokit&lt;/a&gt; - Geokit provides geocoding and distance calculation in an easy-to-use API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/apneadiving/Google-Maps-for-Rails" rel="nofollow" target="_blank" title=""&gt;gmaps4rails&lt;/a&gt; - Enables easy Google map + overlays creation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geokit/geokit-rails" rel="nofollow" target="_blank" title=""&gt;Geokit-rails&lt;/a&gt; - Official Geokit plugin for Rails/ActiveRecord. Provides location-based goodness for your Rails app. Requires the Geokit gem.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dazuma/rgeo" rel="nofollow" target="_blank" title=""&gt;RGeo&lt;/a&gt; - RGeo is a geospatial data library for Ruby. It provides an implementation of the Open Geospatial Consortium's Simple Features Specification, used by most standard spatial/geographic data storage systems such as PostGIS. A number of add-on modules are also available to help with writing location-based applications using Ruby-based frameworks such as Ruby On Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dazuma/activerecord-postgis-adapter" rel="nofollow" target="_blank" title=""&gt;activerecord-postgis-adapter&lt;/a&gt; - ActiveRecord connection adapter for PostGIS. It is based on the stock PostgreSQL adapter, and adds built-in support for the spatial extensions provided by PostGIS. It uses the RGeo library to represent spatial data in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/graticule" rel="nofollow" target="_blank" title=""&gt;Graticule&lt;/a&gt; - Graticule is a geocoding API that provides a common interface to all the popular services, including Google, Yahoo, Geocoder.us, and MetaCarta.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/georuby" rel="nofollow" target="_blank" title=""&gt;GeoRuby&lt;/a&gt; - GeoRuby is intended as a holder for data returned from PostGIS and MySQL Spatial queries. The data model roughly follows the OGC "Simple Features for SQL" specification (see &lt;a href="http://www.opengis.org/docs/99-049.pdf" rel="nofollow" target="_blank" title=""&gt;www.opengis.org/docs/99-049.pdf&lt;/a&gt;), although without any kind of advanced functionalities (such as geometric operators or reprojections)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/georuby" rel="nofollow" target="_blank" title=""&gt;georuby&lt;/a&gt; - GeoRuby provides geometric data types from the OGC 'Simple Features' specification.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/georuby" rel="nofollow" target="_blank" title=""&gt;nofxx-georuby&lt;/a&gt; - GeoRuby provides geometric data types from the OGC 'Simple Features' specification.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/acts_as_geocodable" rel="nofollow" target="_blank" title=""&gt;Acts as geocodable&lt;/a&gt; - Simple geocoding for Active Record models. See the README for more details.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/georuby" rel="nofollow" target="_blank" title=""&gt;ppe-georuby&lt;/a&gt; - GeoRuby provides geometric data types from the OGC 'Simple Features' specification.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/axyjo/leaflet-rails" rel="nofollow" target="_blank" title=""&gt;leaflet-rails&lt;/a&gt; - This gem provides the leaflet.js map display library for your Rails 4 application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/queso/ym4r-gm" rel="nofollow" target="_blank" title=""&gt;Ym4r-gm&lt;/a&gt; - A port of the YM4R-GM plugin for rails, to github&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/parolkar/geo_mere_laal" rel="nofollow" target="_blank" title=""&gt;Geo mere laal&lt;/a&gt; - Zero-effort creation of Location-aware Rails application based on W3C Geolocaton API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/postgis_adapter" rel="nofollow" target="_blank" title=""&gt;Postgis adapter&lt;/a&gt; - Execute PostGIS functions on Active Record&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nofxx/mongoid_geospatial" rel="nofollow" target="_blank" title=""&gt;mongoid_geospatial&lt;/a&gt; - Mongoid Extension that simplifies MongoDB casting and operations on spatial Ruby objects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;georuby_remake&lt;/a&gt; - GeoRuby provides geometric data types from the OGC 'Simple Features' specification.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="I18n"&gt;I18n&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/svenfuchs/i18n" rel="nofollow" target="_blank" title=""&gt;I18n&lt;/a&gt; - New wave Internationalization support for Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/i18n-js" rel="nofollow" target="_blank" title=""&gt;i18n-js&lt;/a&gt; - It's a small library to provide the Rails I18n translations on the Javascript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/globalize/globalize" rel="nofollow" target="_blank" title=""&gt;globalize&lt;/a&gt; - Rails I18n de-facto standard library for ActiveRecord model/data translation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/iain/http_accept_language" rel="nofollow" target="_blank" title=""&gt;http_accept_language&lt;/a&gt; - Find out which locale the user preferes by reading the languages they specified in their browser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/glebm/i18n-tasks" rel="nofollow" target="_blank" title=""&gt;i18n-tasks&lt;/a&gt; - i18n-tasks helps you find and manage missing and unused translations. It analyses code statically for key usages, such as &lt;code&gt;I18n.t('some.key')&lt;/code&gt;, in order to report keys that are missing or unused, pre-fill missing keys (optionally from Google Translate), and remove unused keys.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ai/r18n" rel="nofollow" target="_blank" title=""&gt;R18n&lt;/a&gt; - I18n tool to translate your Ruby application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/grosser/fast_gettext" rel="nofollow" target="_blank" title=""&gt;Fast gettext&lt;/a&gt; - A simple, fast, memory-efficient and threadsafe implementation of GetText&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/raul/translate_routes" rel="nofollow" target="_blank" title=""&gt;Translate routes&lt;/a&gt; - Rails plugin to translate your URLs and routing helpers on an clean way.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/clemens/delocalize" rel="nofollow" target="_blank" title=""&gt;delocalize&lt;/a&gt; - Delocalize is a tool for parsing localized dates/times and numbers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kslazarev/numbers_and_words" rel="nofollow" target="_blank" title=""&gt;numbers_and_words&lt;/a&gt; - Convert numbers to words using I18N.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/joshmh/globalize2" rel="nofollow" target="_blank" title=""&gt;Globalize2&lt;/a&gt; - Rails I18n: de-facto standard library for ActiveRecord data translation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Locale/localeapp" rel="nofollow" target="_blank" title=""&gt;localeapp&lt;/a&gt; - Synchronizes i18n translation keys and content with localeapp.com so you don't have to manage translations by hand.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/copycopter/copycopter-ruby-client" rel="nofollow" target="_blank" title=""&gt;copycopter_client&lt;/a&gt; - Client for the Copycopter copy management service&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dylanz/i18n_backend_database" rel="nofollow" target="_blank" title=""&gt;I18n backend database&lt;/a&gt; - Database Backend for Rails I18n&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kwi/i18n_routing" rel="nofollow" target="_blank" title=""&gt;I18n routing&lt;/a&gt; - I18n_routing is a plugin for Ruby on Rails that lets you easily translate your routes trough the I18n api included in Rails since version 2.2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/berk/tr8n" rel="nofollow" target="_blank" title=""&gt;tr8n&lt;/a&gt; - Crowd-sourced translation and localization engine for Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/phrase/phrase" rel="nofollow" target="_blank" title=""&gt;phrase&lt;/a&gt; - phrase allows you to edit translations in-place on the page itself. More information at phraseapp.com&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jimmycuadra/to_lang" rel="nofollow" target="_blank" title=""&gt;to_lang&lt;/a&gt; - Adds language translation methods to strings and arrays, backed by the Google Translate API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/balinterdi/i15r" rel="nofollow" target="_blank" title=""&gt;I15r&lt;/a&gt; - The internationalizer. Replaces plain text strings in your views and replaces them with I18n message strings so you only have to provide the translations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jo/puret" rel="nofollow" target="_blank" title=""&gt;Puret&lt;/a&gt; - Pure model translations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zigzag/ready_for_i18n" rel="nofollow" target="_blank" title=""&gt;Ready for i18n&lt;/a&gt; - ready_for_i18n will help you extract visible hard-coded text from your ERB view files, then choose a proper key and replace them with the I18n.translate method like t(:login)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Exvo/locale_detector" rel="nofollow" target="_blank" title=""&gt;locale_detector&lt;/a&gt; - Parses HTTP_ACCEPT_LANGUAGE http header and sets the I18n.locale based on that, if it's missing it uses toplevel regional domain suffix or falls back to I18n.default_locale&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mose/rails-i18nterface" rel="nofollow" target="_blank" title=""&gt;rails-i18nterface&lt;/a&gt; - A rails engine adding an interface for translating and writing translation files. Works with rails 3 and 4.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Natural Language Date Parsing"&gt;Natural Language Date Parsing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mojombo/chronic" rel="nofollow" target="_blank" title=""&gt;Chronic&lt;/a&gt; - Chronic is a natural language date/time parser written in pure Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hpoydar/chronic_duration" rel="nofollow" target="_blank" title=""&gt;Chronic Duration&lt;/a&gt; - A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lzell/nickel" rel="nofollow" target="_blank" title=""&gt;Nickel&lt;/a&gt; - Extracts date, time, and message information from naturally worded text.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/noctivityinc/tickle" rel="nofollow" target="_blank" title=""&gt;Tickle&lt;/a&gt; - Tickle is a date/time helper gem to help parse natural language into a recurring pattern. Tickle is designed to be a compliment of Chronic and can interpret things such as "every 2 days, every Sunday, Sundays, Weekly, etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/xaviershay/kronic" rel="nofollow" target="_blank" title=""&gt;kronic&lt;/a&gt; - A dirt simple library for parsing and formatting human readable dates&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Recurring Events"&gt;Recurring Events&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/seejohnrun/ice_cube" rel="nofollow" target="_blank" title=""&gt;Ice cube&lt;/a&gt; - ice_cube is a recurring date library for Ruby. It allows for quick, programatic expansion of recurring date rules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/recurrence" rel="nofollow" target="_blank" title=""&gt;Recurrence&lt;/a&gt; - A simple library to handle recurring events&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/angelic/schedule_fu" rel="nofollow" target="_blank" title=""&gt;Schedule fu&lt;/a&gt; - ScheduleFu allows scheduling events with dates and times.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mlipper/runt" rel="nofollow" target="_blank" title=""&gt;Runt&lt;/a&gt; - Runt is a Ruby implementation of temporal patterns by Martin Fowler. Runt provides an API for working with recurring events using set expressions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Web Apps, Services &amp;amp; Interaction"&gt;Web Apps, Services &amp;amp; Interaction&lt;/h2&gt;&lt;h3 id="API Builders"&gt;API Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/jbuilder" rel="nofollow" target="_blank" title=""&gt;jbuilder&lt;/a&gt; - Create JSON structures via a Builder-style DSL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/grape" rel="nofollow" target="_blank" title=""&gt;Grape&lt;/a&gt; - A Ruby framework for rapid API development with great conventions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails-api/active_model_serializers" rel="nofollow" target="_blank" title=""&gt;active_model_serializers&lt;/a&gt; - ActiveModel::Serializers allows you to generate your JSON in an object-oriented and convention-driven manner.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nesquena/rabl" rel="nofollow" target="_blank" title=""&gt;rabl&lt;/a&gt; - General ruby templating with json, bson, xml and msgpack support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/apotonick/roar" rel="nofollow" target="_blank" title=""&gt;roar&lt;/a&gt; - Object-oriented representers help you defining nested REST API documents which can then be rendered and parsed using one and the same concept.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sutto/rocket_pants" rel="nofollow" target="_blank" title=""&gt;rocket_pants&lt;/a&gt; - Rocket Pants adds JSON API love to Rails and ActionController, making it simpler to build API-oriented controllers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bploetz/versionist" rel="nofollow" target="_blank" title=""&gt;versionist&lt;/a&gt; - A plugin for versioning Rails based RESTful APIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bwillis/versioncake" rel="nofollow" target="_blank" title=""&gt;versioncake&lt;/a&gt; - Render versioned views automagically based on the clients requested version.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fabrik42/acts_as_api" rel="nofollow" target="_blank" title=""&gt;acts_as_api&lt;/a&gt; - acts_as_api enriches the models and controllers of your app in a rails-like way so you can easily determine how your XML/JSON API responses should look like.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/madx/roy" rel="nofollow" target="_blank" title=""&gt;roy&lt;/a&gt; - roy is a small library which allows every Ruby object to be used as a Rack application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/erichmenge/api-versions" rel="nofollow" target="_blank" title=""&gt;api-versions&lt;/a&gt; - api-versions helps manage your Rails app API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ajsharp/bldr" rel="nofollow" target="_blank" title=""&gt;bldr&lt;/a&gt; - Provides a simple and intuitive templating DSL for serializing objects to JSON.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/joshbuddy/apiary" rel="nofollow" target="_blank" title=""&gt;apiary&lt;/a&gt; - Convert your existing class into an EM-based API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="API Clients"&gt;API Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sferik/twitter" rel="nofollow" target="_blank" title=""&gt;Twitter&lt;/a&gt; - A Ruby interface to the Twitter API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arsduo/koala" rel="nofollow" target="_blank" title=""&gt;koala&lt;/a&gt; - Koala is a lightweight, flexible Ruby SDK for Facebook. It allows read/write access to the social graph via the Graph and REST APIs, as well as support for realtime updates and OAuth and Facebook Connect authentication. Koala is fully tested and supports Net::HTTP and Typhoeus connections out of the box and can accept custom modules for other services.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pengwynn/octokit" rel="nofollow" target="_blank" title=""&gt;octokit&lt;/a&gt; - Simple wrapper for the GitHub API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nov/fb_graph" rel="nofollow" target="_blank" title=""&gt;fb_graph&lt;/a&gt; - A full-stack Facebook Graph API wrapper in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peter-murach/github" rel="nofollow" target="_blank" title=""&gt;github_api&lt;/a&gt; - Ruby client that supports all of the GitHub API methods. It's build in a modular way, that is, you can either instantiate the whole api wrapper Github.new or use parts of it e.i. Github::Client::Repos.new if working solely with repositories is your main concern. Intuitive query methods allow you easily call API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pengwynn/linkedin" rel="nofollow" target="_blank" title=""&gt;Linkedin&lt;/a&gt; - Ruby wrapper for the LinkedIn API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amro/gibbon" rel="nofollow" target="_blank" title=""&gt;gibbon&lt;/a&gt; - A wrapper for MailChimp API 3.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kylejginavan/youtube_it" rel="nofollow" target="_blank" title=""&gt;youtube_it&lt;/a&gt; - Upload, delete, update, comment on youtube videos all from one gem.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/arangamani/jenkins_api_client" rel="nofollow" target="_blank" title=""&gt;jenkins_api_client&lt;/a&gt; - This is a simple and easy-to-use Jenkins Api client with features focused on automating Job configuration programaticaly and so forth&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/philnash/bitly" rel="nofollow" target="_blank" title=""&gt;Bitly&lt;/a&gt; - Use the bit.ly API to shorten or expand URLs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/tinder" rel="nofollow" target="_blank" title=""&gt;Tinder&lt;/a&gt; - A Ruby API for interfacing with Campfire, the 37Signals chat application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voloko/twitter-stream" rel="nofollow" target="_blank" title=""&gt;Twitter-stream&lt;/a&gt; - Simple Ruby client library for twitter streaming API. Uses EventMachine for connection handling. Adheres to twitter's reconnection guidline. JSON format only.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/tweetstream" rel="nofollow" target="_blank" title=""&gt;Tweetstream&lt;/a&gt; - TweetStream is a simple wrapper for consuming the Twitter Streaming API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rackspace/ruby-cloudfiles" rel="nofollow" target="_blank" title=""&gt;Ruby-cloudfiles&lt;/a&gt; - Ruby API for Cloud Files&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/moomerman/twitter_oauth" rel="nofollow" target="_blank" title=""&gt;Twitter oauth&lt;/a&gt; - twitter_oauth is a Ruby client for the Twitter API using OAuth.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jugend/amazon-ecs" rel="nofollow" target="_blank" title=""&gt;Amazon-ecs&lt;/a&gt; - Generic Amazon Product Advertising Ruby API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hanklords/flickraw" rel="nofollow" target="_blank" title=""&gt;Flickraw&lt;/a&gt; - Flickr library with a syntax close to the syntax described on &lt;a href="http://www.flickr.com/services/api" rel="nofollow" target="_blank"&gt;http://www.flickr.com/services/api&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattmueller/foursquare2" rel="nofollow" target="_blank" title=""&gt;foursquare2&lt;/a&gt; - Gives access to all endpoints in version 2 of foursquare's API with syntax that will be familiar to those who used the original foursquare gem by Jeremy Welch.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/terra-firma/hominid" rel="nofollow" target="_blank" title=""&gt;Hominid&lt;/a&gt; - Hominid is a Ruby gem that provides a wrapper for interacting with the Mailchimp email marketing service MC, STS and Export API's.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thibaudgg/video_info" rel="nofollow" target="_blank" title=""&gt;video_info&lt;/a&gt; - Get video info from Dailymotion, Vimeo, VK and YouTube url.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/matthooks/vimeo" rel="nofollow" target="_blank" title=""&gt;Vimeo&lt;/a&gt; - A full featured Ruby implementation of the Vimeo API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/keolo/mixpanel_client" rel="nofollow" target="_blank" title=""&gt;mixpanel_client&lt;/a&gt; - Simple ruby client interface to the Mixpanel Data API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/northworld/google_calendar" rel="nofollow" target="_blank" title=""&gt;google_calendar&lt;/a&gt; - A minimal wrapper around the google calendar API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mislav/contacts" rel="nofollow" target="_blank" title=""&gt;Contacts&lt;/a&gt; - A universal interface to grab contact list information from various providers including Yahoo, AOL, Gmail, Hotmail, and Plaxo.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hakanensari/vacuum" rel="nofollow" target="_blank" title=""&gt;vacuum&lt;/a&gt; - A wrapper to the Amazon Product Advertising API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jazminschroeder/fedex" rel="nofollow" target="_blank" title=""&gt;fedex&lt;/a&gt; - Provides an interface to Fedex Web Services&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codyfauser/ebay" rel="nofollow" target="_blank" title=""&gt;Ebay&lt;/a&gt; - eBay4R is a Ruby wrapper for eBay's Web Services SOAP API. Emphasis is on ease of use and small footprint.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/campaignmonitor/createsend-ruby" rel="nofollow" target="_blank" title=""&gt;createsend&lt;/a&gt; - Implements the complete functionality of the Campaign Monitor API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lukeredpath/clickatell" rel="nofollow" target="_blank" title=""&gt;Clickatell&lt;/a&gt; - Ruby interface to the Clickatell SMS gateway service.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fcoury/octopi" rel="nofollow" target="_blank" title=""&gt;Octopi&lt;/a&gt; - A Ruby interface to GitHub API v2&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/commonthread/flickr_fu" rel="nofollow" target="_blank" title=""&gt;Flickr fu&lt;/a&gt; - Provides a ruby interface to flickr via the REST api&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hayesdavis/grackle" rel="nofollow" target="_blank" title=""&gt;Grackle&lt;/a&gt; - Grackle is a lightweight library for the Twitter REST API designed to be resilient to Twitter API changes or errors.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/phoet/asin" rel="nofollow" target="_blank" title=""&gt;Asin&lt;/a&gt; - Amazon Simple INterface - Support for ItemLookup, SimilarityLookup, Search, BrowseNode and Cart Operations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/groupme/quimby" rel="nofollow" target="_blank" title=""&gt;quimby&lt;/a&gt; - A Foursquare API wrapper&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/croaky/twitter-search" rel="nofollow" target="_blank" title=""&gt;Twitter-search&lt;/a&gt; - Ruby wrapper for the Twitter Search API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bcurren/freshbooks.rb" rel="nofollow" target="_blank" title=""&gt;freshbooks.rb&lt;/a&gt; - This rubygem does not have a description or summary.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shvets/google-translate" rel="nofollow" target="_blank" title=""&gt;Google-translate&lt;/a&gt; - Simple client for Google Translate API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Caged/lighthouse-api" rel="nofollow" target="_blank" title=""&gt;Lighthouse-api&lt;/a&gt; - Ruby API wrapper for Lighthouse - &lt;a href="http://lighthouseapp.com" rel="nofollow" target="_blank"&gt;http://lighthouseapp.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zinenko/vk-ruby" rel="nofollow" target="_blank" title=""&gt;vk-ruby&lt;/a&gt; - VK-RUBY gives you full access to all vk.com API features. Has several types of method naming and methods calling, optional authorization, file uploading, logging, irb integration, parallel method calling and any faraday-supported http adapter of your choice.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jeffkreeftmeijer/tumblr" rel="nofollow" target="_blank" title=""&gt;Tumblr&lt;/a&gt; - a command line utility and library which interfaces to the excellent tumblr blogging platform&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbbx6spp/twitter4r" rel="nofollow" target="_blank" title=""&gt;Twitter4r&lt;/a&gt; - A clean Twitter client API in pure Ruby. Will include Twitter add-ons also in Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elucid/ruby-freshbooks" rel="nofollow" target="_blank" title=""&gt;ruby-freshbooks&lt;/a&gt; - simple FreshBooks API wrapper. supports both OAuth and API token authentication&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rpheath/google_ajax_libraries_api" rel="nofollow" target="_blank" title=""&gt;Google ajax libraries api&lt;/a&gt; - Rails plugin: implements Google's Content Delivery Network for all javascript libraries currently supported by their library API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/completelynovel/amazon-product-advertising-api" rel="nofollow" target="_blank" title=""&gt;Amazon-product-advertising-api&lt;/a&gt; - A nice rubyish interface to the Amazon Product Advertising API, formerly known as the Associates Web Service and before that the Amazon E-Commerce Service.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/weppos/www-delicious" rel="nofollow" target="_blank" title=""&gt;Www-delicious&lt;/a&gt; - WWW::Delicious is a del.icio.us API client implemented in Ruby. It provides access to all available del.icio.us API queries and returns the original XML response as a friendly Ruby object.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schleyfox/wikipedia-api" rel="nofollow" target="_blank" title=""&gt;Wikipedia-api&lt;/a&gt; - Ruby wrapper over the Wikipedia API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ronaldwan/foursquare-api" rel="nofollow" target="_blank" title=""&gt;foursquare-api&lt;/a&gt; - foursquare-api is a Ruby wrapper for the new Foursqauare V2 API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/squeejee/twitterland" rel="nofollow" target="_blank" title=""&gt;Twitterland&lt;/a&gt; - wrappers for various twitter apis&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/ruby-github" rel="nofollow" target="_blank" title=""&gt;Ruby-github&lt;/a&gt; - Ruby-GitHub is a simple wrapper library for the evolving GitHub API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/magnolia-fan/musicbrainz" rel="nofollow" target="_blank" title=""&gt;musicbrainz&lt;/a&gt; - MusicBrainz Web Service wrapper with ActiveRecord-style models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dwradcliffe/groupme" rel="nofollow" target="_blank" title=""&gt;groupme&lt;/a&gt; - Simple wrapper for the GroupMe v3 API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/meganemura/ruby-dmm" rel="nofollow" target="_blank" title=""&gt;ruby-dmm&lt;/a&gt; - Client for the DMM Web Service API v3.0.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/weboglobin/semrush" rel="nofollow" target="_blank" title=""&gt;semrush&lt;/a&gt; - This gem is a ruby client for the SemRush API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/defeed/spotlite" rel="nofollow" target="_blank" title=""&gt;spotlite&lt;/a&gt; - Spotlite gem helps you fetch all kinds of publicly available information about movies and people from IMDb movie website, including title, year, genres, directors, writers, actors, runtime, countries, poster, keywords, etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dblommesteijn/trans-api" rel="nofollow" target="_blank" title=""&gt;trans-api&lt;/a&gt; - Transmission (bittorrent client) RPC API for Ruby on Rails (gem)&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;freshbooks&lt;/a&gt; - FreshBooks.rb: FreshBooks API wrapper for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;freshbooks2&lt;/a&gt; - new-freshbooks is a Ruby interface to the FreshBooks API. It exposes easy-to-use classes and methods for interacting with your FreshBooks account.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;runkeeper-activites&lt;/a&gt; - A ruby interface for the latest activites on RunKeeper&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Atom &amp;amp; RSS Feed Parsing"&gt;Atom &amp;amp; RSS Feed Parsing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pauldix/feedzirra" rel="nofollow" target="_blank" title=""&gt;Feedzirra&lt;/a&gt; - This project has been renamed to Feedjira, find out more at feedjira.com.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cardmagic/simple-rss" rel="nofollow" target="_blank" title=""&gt;Simple-rss&lt;/a&gt; - A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is designed to be backwards compatible with the standard RSS parser, but will never do RSS generation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seangeo/ratom" rel="nofollow" target="_blank" title=""&gt;ratom&lt;/a&gt; - A fast Atom Syndication and Publication API based on libxml&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/aasmith/feed-normalizer" rel="nofollow" target="_blank" title=""&gt;Feed-normalizer&lt;/a&gt; - An extensible Ruby wrapper for Atom and RSS parsers. Feed normalizer wraps various RSS and Atom parsers, and returns a single unified object graph, regardless of the underlying feed format.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmhodges/rfeedparser" rel="nofollow" target="_blank" title=""&gt;rfeedparser&lt;/a&gt; - Parse RSS and Atom feeds in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;opds_monster&lt;/a&gt; - A command line tool to download opds feeds&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="HTML parsing"&gt;HTML parsing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/sparklemotion/nokogiri" rel="nofollow" target="_blank" title=""&gt;Nokogiri&lt;/a&gt; - Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's many features is the ability to search documents via XPath or CSS3 selectors.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hpricot/hpricot" rel="nofollow" target="_blank" title=""&gt;Hpricot&lt;/a&gt; - a swift, liberal HTML parser with a fantastic library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/scrubber/scrubyt" rel="nofollow" target="_blank" title=""&gt;Scrubyt&lt;/a&gt; - scRUBYt! is an easy to learn and use, yet powerful and effective web scraping framework. It's most interesting part is a Web-scraping DSL built on HPricot and WWW::Mechanize, which allows to navigate to the page of interest, then extract and query data records with a few lines of code. It is hard to describe scRUBYt! in a few sentences - you have to see it for yourself!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/assaf/scrapi" rel="nofollow" target="_blank" title=""&gt;Scrapi&lt;/a&gt; - scrAPI is an HTML scraping toolkit for Ruby. It uses CSS selectors to write easy, maintainable scraping rules to select, extract and store data from HTML content.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="HTTP clients"&gt;HTTP clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rest-client/rest-client" rel="nofollow" target="_blank" title=""&gt;Rest-client&lt;/a&gt; - A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lostisland/faraday" rel="nofollow" target="_blank" title=""&gt;faraday&lt;/a&gt; - HTTP/REST API client library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nicksieger/multipart-post" rel="nofollow" target="_blank" title=""&gt;multipart-post&lt;/a&gt; - Use with Net::HTTP to do multipart form posts. IO values that have #content_type, #original_filename, and #local_path will be posted as a binary file.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/httparty" rel="nofollow" target="_blank" title=""&gt;Httparty&lt;/a&gt; - Makes http fun! Also, makes consuming restful web services dead easy.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/geemus/excon" rel="nofollow" target="_blank" title=""&gt;Excon&lt;/a&gt; - EXtended http(s) CONnections&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nahi/httpclient" rel="nofollow" target="_blank" title=""&gt;httpclient&lt;/a&gt; - gives something like the functionality of libwww-perl (LWP) in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sparklemotion/mechanize" rel="nofollow" target="_blank" title=""&gt;Mechanize&lt;/a&gt; - The Mechanize library is used for automating interaction with websites. Mechanize automatically stores and sends cookies, follows redirects, and can follow links and submit forms. Form fields can be populated and submitted. Mechanize also keeps track of the sites that you have visited as a history.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/taf2/curb" rel="nofollow" target="_blank" title=""&gt;Curb&lt;/a&gt; - Curb (probably CUrl-RuBy or something) provides Ruby-language bindings for the libcurl(3), a fully-featured client-side URL transfer library. cURL and libcurl live at &lt;a href="http://curl.haxx.se/" rel="nofollow" target="_blank"&gt;http://curl.haxx.se/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/savonrb/httpi" rel="nofollow" target="_blank" title=""&gt;HTTPI&lt;/a&gt; - Common interface for Ruby's HTTP libraries&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/typhoeus/typhoeus" rel="nofollow" target="_blank" title=""&gt;Typhoeus&lt;/a&gt; - Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igrigorik/em-http-request" rel="nofollow" target="_blank" title=""&gt;em-http-request&lt;/a&gt; - EventMachine based, async HTTP Request client&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/toland/patron" rel="nofollow" target="_blank" title=""&gt;Patron&lt;/a&gt; - Ruby HTTP client library based on libcurl&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/maccman/nestful" rel="nofollow" target="_blank" title=""&gt;Nestful&lt;/a&gt; - Simple Ruby HTTP/REST client with a sane API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/caelum/restfulie" rel="nofollow" target="_blank" title=""&gt;Restfulie&lt;/a&gt; - restfulie&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mwunsch/weary" rel="nofollow" target="_blank" title=""&gt;Weary&lt;/a&gt; - A framework and DSL to construct Ruby clients to RESTful web services.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/filtersquad/api_smith" rel="nofollow" target="_blank" title=""&gt;APISmith&lt;/a&gt; - APISmith provides tools to make working with structured HTTP-based apis even easier.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/codegram/hyperclient" rel="nofollow" target="_blank" title=""&gt;hyperclient&lt;/a&gt; - HyperClient is a Ruby Hypermedia API client.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Gazler/rapidash" rel="nofollow" target="_blank" title=""&gt;rapidash&lt;/a&gt; - Evolve your API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wegowise/remotely" rel="nofollow" target="_blank" title=""&gt;Remotely&lt;/a&gt; - Remote API based model associations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brianmario/streamly" rel="nofollow" target="_blank" title=""&gt;Streamly&lt;/a&gt; - A streaming REST client for Ruby, in C.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dlindahl/frenetic" rel="nofollow" target="_blank" title=""&gt;frenetic&lt;/a&gt; - An opinionated Ruby-based Hypermedia API client.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="HTTP Pub/Sub"&gt;HTTP Pub/Sub&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/imanel/websocket-ruby" rel="nofollow" target="_blank" title=""&gt;websocket&lt;/a&gt; - Universal Ruby library to handle WebSocket protocol&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/faye/faye" rel="nofollow" target="_blank" title=""&gt;faye&lt;/a&gt; - Simple pub/sub messaging for the web&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igrigorik/em-websocket" rel="nofollow" target="_blank" title=""&gt;em-websocket&lt;/a&gt; - EventMachine based WebSocket server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/private_pub" rel="nofollow" target="_blank" title=""&gt;private_pub&lt;/a&gt; - Private pub/sub messaging in Rails through Faye.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ngauthier/tubesock" rel="nofollow" target="_blank" title=""&gt;tubesock&lt;/a&gt; - Websocket interface on Rack Hijack w/ Rails support&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamesotron/faye-rails" rel="nofollow" target="_blank" title=""&gt;faye-rails&lt;/a&gt; - Faye bindings for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DanKnox/websocket-rails" rel="nofollow" target="_blank" title=""&gt;websocket-rails&lt;/a&gt; - Seamless Ruby on Rails websocket integration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/imanel/websocket-rack" rel="nofollow" target="_blank" title=""&gt;websocket-rack&lt;/a&gt; - Rack-based WebSocket server&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/socky/socky-server-ruby" rel="nofollow" target="_blank" title=""&gt;socky-server&lt;/a&gt; - Socky is a WebSocket server and client for Ruby&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="JSON Parsers"&gt;JSON Parsers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/intridea/multi_json" rel="nofollow" target="_blank" title=""&gt;multi_json&lt;/a&gt; - A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flori/json" rel="nofollow" target="_blank" title=""&gt;json&lt;/a&gt; - This is a JSON implementation as a Ruby extension in C.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flori/json" rel="nofollow" target="_blank" title=""&gt;json pure&lt;/a&gt; - This is a JSON implementation in pure Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brianmario/yajl-ruby" rel="nofollow" target="_blank" title=""&gt;yajl-ruby&lt;/a&gt; - Ruby C bindings to the excellent Yajl JSON stream-based parser library.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/crack" rel="nofollow" target="_blank" title=""&gt;crack&lt;/a&gt; - Really simple JSON and XML parsing, ripped from Merb and Rails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ohler55/oj" rel="nofollow" target="_blank" title=""&gt;oj&lt;/a&gt; - The fastest JSON parser and object serializer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Multitenancy"&gt;Multitenancy&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/influitive/apartment" rel="nofollow" target="_blank" title=""&gt;apartment&lt;/a&gt; - Apartment allows Rack applications to deal with database multitenancy through ActiveRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ErwinM/acts_as_tenant" rel="nofollow" target="_blank" title=""&gt;acts_as_tenant&lt;/a&gt; - Integrates multi-tenancy into a Rails application in a convenient and out-of-your way manner&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dsaronin/milia" rel="nofollow" target="_blank" title=""&gt;milia&lt;/a&gt; - Multi-tenanting gem for hosted Rails/Ruby/devise applications&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wireframe/multitenant" rel="nofollow" target="_blank" title=""&gt;multitenant&lt;/a&gt; - never let an unscoped Model.all accidentally leak data to an unintended audience.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/consolo/acts_as_restricted_subdomain" rel="nofollow" target="_blank" title=""&gt;Acts as restricted subdomain&lt;/a&gt; - Allows a Rails application to run multiple subdomain sites transparently inside of a single Rails instance. This allows for multi-homed or multi-tenant databases very easily.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Rails Controller Abstractions"&gt;Rails Controller Abstractions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/josevalim/inherited_resources" rel="nofollow" target="_blank" title=""&gt;Inherited resources&lt;/a&gt; - Inherited Resources speeds up development by making your controllers inherit all restful actions so you just have to focus on what is important.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voxdolo/decent_exposure" rel="nofollow" target="_blank" title=""&gt;DecentExposure&lt;/a&gt; - DecentExposure helps you program to an interface, rather than an implementation in your Rails controllers. The fact of the matter is that sharing state via instance variables in controllers promotes close coupling with views. DecentExposure gives you a declarative manner of exposing an interface to the state that controllers contain and thereby decreasing coupling and improving your testability and overall design.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jamesgolick/resource_controller" rel="nofollow" target="_blank" title=""&gt;Resource controller&lt;/a&gt; - Rails RESTful controller abstraction plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hcatlin/make_resourceful" rel="nofollow" target="_blank" title=""&gt;Make resourceful&lt;/a&gt; - Controller abstractor for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ianwhite/resources_controller" rel="nofollow" target="_blank" title=""&gt;Resources controller&lt;/a&gt; - resources_controller rails plugin: rc makes RESTful controllers fun&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="SOAP Clients"&gt;SOAP Clients&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/savonrb/savon" rel="nofollow" target="_blank" title=""&gt;Savon&lt;/a&gt; - Heavy metal SOAP client&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/troelskn/handsoap" rel="nofollow" target="_blank" title=""&gt;Handsoap&lt;/a&gt; - Handsoap is a library for creating SOAP clients in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/loco2/lolsoap" rel="nofollow" target="_blank" title=""&gt;lolsoap&lt;/a&gt; - A library for dealing with SOAP requests and responses. We tear our hair out so you don't have to.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Social Network Builders"&gt;Social Network Builders&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/insoshi/insoshi" rel="nofollow" target="_blank" title=""&gt;Insoshi&lt;/a&gt; - An open source social networking platform in Ruby on Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bborn/communityengine" rel="nofollow" target="_blank" title=""&gt;Communityengine&lt;/a&gt; - Adds basic social networking capabilities to your existing application, including users, blogs, photos, clippings, favorites, and more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ging/social_stream" rel="nofollow" target="_blank" title=""&gt;SocialStream&lt;/a&gt; - Social Stream is a Ruby on Rails engine for building social network websites. It supports contacts, posts, file uploads, private messages and much more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stevenbristol/lovd-by-less" rel="nofollow" target="_blank" title=""&gt;Lovd-by-less&lt;/a&gt; - Open Source Social Network written in Ruby on Rail by Less Everything&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Diego81/omnicontacts" rel="nofollow" target="_blank" title=""&gt;omnicontacts&lt;/a&gt; - A generalized Rack middleware for importing contacts from major email providers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tcocca/acts_as_follower" rel="nofollow" target="_blank" title=""&gt;acts_as_follower&lt;/a&gt; - acts_as_follower is a Rubygem to allow any model to follow any other model. This is accomplished through a double polymorphic relationship on the Follow model. There is also built in support for blocking/un-blocking follow records. Main uses would be for Users to follow other Users or for Users to follow Books, etc… (Basically, to develop the type of follow system that GitHub has)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cmer/socialization" rel="nofollow" target="_blank" title=""&gt;socialization&lt;/a&gt; - Socialization allows any model to Follow and/or Like any other model. This is accomplished through a double polymorphic relationship on the Follow and Like models. But you don't need to know that since all the complexity is hidden from you.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/timothyf/enginey" rel="nofollow" target="_blank" title=""&gt;Enginey&lt;/a&gt; - EngineY is an easy to use social network framework and portal implemented in Ruby on Rails that is easy to customize and deploy as your own powerful social media site or other portal type site. Empower users with their own blogs. Enhance collaboration with forums, groups and events. Let your users post Twitter-like status messages. Track all the activity on your site with a live activity stream. Build a custom client to access all of your social data using EngineY's RESTful API.  Also includes integration with Facebook Connect to allow users to login with Facebook credentials.  Recent additions include support for Themes, and Content Management.  For project updates and information, follow the project on Twitter &lt;a href="/engineyfw" class="user-mention" title="@engineyfw"&gt;&lt;i&gt;@&lt;/i&gt;engineyfw&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/agoragames/leaderboard" rel="nofollow" target="_blank" title=""&gt;leaderboard&lt;/a&gt; - Leaderboards backed by Redis in Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/salkar/inkwell" rel="nofollow" target="_blank" title=""&gt;inkwell&lt;/a&gt; - Inkwell provides simple way to add social networking features like comments, reblogs, favorites, following/followers, communities, categories and timelines to your Ruby on Rails application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/schneems/Likeable" rel="nofollow" target="_blank" title=""&gt;likeable&lt;/a&gt; - Likeable allows you to make your models...well...likeable using redis.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sjlombardo/acts_as_network" rel="nofollow" target="_blank" title=""&gt;Acts as network&lt;/a&gt; - Rails plugin for cleanly modeling social networks using ActiveRecord&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/agoragames/amico" rel="nofollow" target="_blank" title=""&gt;amico&lt;/a&gt; - Relationships (e.g. friendships) backed by Redis&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="URL Rewriting"&gt;URL Rewriting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jtrupiano/rack-rewrite" rel="nofollow" target="_blank" title=""&gt;rack-rewrite&lt;/a&gt; - A rack middleware for enforcing rewrite rules. In many cases you can get away with rack-rewrite instead of writing Apache mod_rewrite rules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/joshsusser/refraction" rel="nofollow" target="_blank" title=""&gt;Refraction&lt;/a&gt; - Reflection is a Rails plugin and standalone Rack middleware library. Give up quirky config syntax and use plain old Ruby for your rewrite and redirection rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="User Agent Detection"&gt;User Agent Detection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/fnando/browser" rel="nofollow" target="_blank" title=""&gt;browser&lt;/a&gt; - Do some browser detection with Ruby.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/josh/useragent" rel="nofollow" target="_blank" title=""&gt;useragent&lt;/a&gt; - HTTP User Agent parser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tscolari/mobylette" rel="nofollow" target="_blank" title=""&gt;mobylette&lt;/a&gt; - Adds the mobile format for rendering views for mobile device.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/toolmantim/user_agent_parser" rel="nofollow" target="_blank" title=""&gt;user_agent_parser&lt;/a&gt; - A simple, comprehensive Ruby gem for parsing user agent strings with the help of BrowserScope's UA database&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kevinelliott/agent_orange" rel="nofollow" target="_blank" title=""&gt;agent_orange&lt;/a&gt; - Parse and process User Agents like a secret one&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/assembler/browsernizer" rel="nofollow" target="_blank" title=""&gt;browsernizer&lt;/a&gt; - Rack middleware for redirecting unsupported user agents to "please upgrade" page&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/visionmedia/user-agent" rel="nofollow" target="_blank" title=""&gt;user-agent&lt;/a&gt; - User agent parser&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jistr/mobvious" rel="nofollow" target="_blank" title=""&gt;mobvious&lt;/a&gt; - Rack middleware for choosing a version of an interface to render for given request&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/shenoudab/active_device" rel="nofollow" target="_blank" title=""&gt;active_device&lt;/a&gt; - Device UserAgent Detector&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mdp/divining_rod" rel="nofollow" target="_blank" title=""&gt;divining_rod&lt;/a&gt; - A DSL for writing user agent profiles&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Web Analytics"&gt;Web Analytics&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/hybridgroup/gabba" rel="nofollow" target="_blank" title=""&gt;gabba&lt;/a&gt; - Easy server-side tracking for Google Analytics&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tpitale/legato" rel="nofollow" target="_blank" title=""&gt;legato&lt;/a&gt; - Access the Google Analytics Core Reporting and Management APIs with Ruby. Create models for metrics and dimensions. Filter your data to tell you what you need.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/activenetwork/gattica" rel="nofollow" target="_blank" title=""&gt;gattica&lt;/a&gt; - Gattica is a Ruby library for extracting data from the Google Analytics API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bgarret/google-analytics-rails" rel="nofollow" target="_blank" title=""&gt;google-analytics-rails&lt;/a&gt; - Rails helpers to manage google analytics tracking&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/blatyo/page_rankr" rel="nofollow" target="_blank" title=""&gt;PageRankr&lt;/a&gt; - Easy way to retrieve Google Page Rank, Alexa Rank, backlink counts, index counts and different types of social signals&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/leehambley/rack-google-analytics" rel="nofollow" target="_blank" title=""&gt;rack-google-analytics&lt;/a&gt; - Simple Rack middleware for implementing google analytics tracking in your Ruby-Rack based project. Supports synchronous and asynchronous insertion and configurable load options.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/saturnine/redis_analytics" rel="nofollow" target="_blank" title=""&gt;redis_analytics&lt;/a&gt; - A gem that provides a Redis based web analytics solution for your rack-compliant apps. It gives you detailed analytics about visitors, unique visitors, browsers, OS, visitor recency, traffic sources and more&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/robmckinnon/rugalytics" rel="nofollow" target="_blank" title=""&gt;Rugalytics&lt;/a&gt; - Rugalytics is a Ruby API for Google Analytics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;googlepagerank&lt;/a&gt; - Ruby gem for fetching Google PageRank®&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Web App Frameworks"&gt;Web App Frameworks&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/rails" rel="nofollow" target="_blank" title=""&gt;Ruby on Rails&lt;/a&gt; - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rack/rack" rel="nofollow" target="_blank" title=""&gt;Rack&lt;/a&gt; - Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call. Also see &lt;a href="http://rack.github.io/" rel="nofollow" target="_blank"&gt;http://rack.github.io/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sinatra/sinatra" rel="nofollow" target="_blank" title=""&gt;Sinatra&lt;/a&gt; - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/padrino/padrino-framework" rel="nofollow" target="_blank" title=""&gt;Padrino&lt;/a&gt; - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lifo/cramp" rel="nofollow" target="_blank" title=""&gt;Cramp&lt;/a&gt; - Cramp is a framework for developing asynchronous web applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/soveran/cuba" rel="nofollow" target="_blank" title=""&gt;Cuba&lt;/a&gt; - Cuba is a microframework for web applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wycats/merb" rel="nofollow" target="_blank" title=""&gt;Merb&lt;/a&gt; - Merb. Pocket rocket web framework.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/camping/camping" rel="nofollow" target="_blank" title=""&gt;Camping&lt;/a&gt; - minature rails for stay-at-home moms&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tablatom/hobo" rel="nofollow" target="_blank" title=""&gt;Hobo&lt;/a&gt; - The web app builder for Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ramaze/ramaze" rel="nofollow" target="_blank" title=""&gt;Ramaze&lt;/a&gt; - Ramaze is a simple and modular web framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/garybernhardt/raptor" rel="nofollow" target="_blank" title=""&gt;raptor&lt;/a&gt; - Nothing to see yet.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/metabahn/pakyow" rel="nofollow" target="_blank" title=""&gt;pakyow&lt;/a&gt; - Modern web framework for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/renee-project/renee" rel="nofollow" target="_blank" title=""&gt;Renee&lt;/a&gt; - The super-friendly web framework.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/botanicus/rango" rel="nofollow" target="_blank" title=""&gt;Rango&lt;/a&gt; - Rango is ultralightweight, ultracustomizable, ultracool web framework deeply inspired by Django.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/wardrop/Scorched" rel="nofollow" target="_blank" title=""&gt;Scorched&lt;/a&gt; - A light-weight Sinatra-inspired web framework for web sites and applications of any size.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/celluloid/lattice" rel="nofollow" target="_blank" title=""&gt;lattice&lt;/a&gt; - A concurrent realtime web framework for Ruby&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ged/strelka" rel="nofollow" target="_blank" title=""&gt;strelka&lt;/a&gt; - Strelka is a framework for creating and deploying Mongrel2[&lt;a href="http://mongrel2.org/" rel="nofollow" target="_blank"&gt;http://mongrel2.org/&lt;/a&gt;] web applications in Ruby. It's named after a lesser known {Russian cosmonaut}[&lt;a href="http://en.wikipedia.org/wiki/Strelka_dog)#Belka_and_Strelka" rel="nofollow" target="_blank"&gt;http://en.wikipedia.org/wiki/Strelka_dog)#Belka_and_Strelka&lt;/a&gt;(] who was one of the first canine space travelers to orbit the Earth and return alive. Her name means "little arrow".&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/saladrb/salad" rel="nofollow" target="_blank" title=""&gt;salad&lt;/a&gt; - Is web framework that makes common things simple, and uncommon things possible.&lt;/li&gt;
&lt;li&gt;
&lt;a href="" title=""&gt;gin&lt;/a&gt; - Gin is a small Ruby web framework, built on Rack, which borrows from Sinatra expressiveness, and targets larger applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Web Content Scrapers"&gt;Web Content Scrapers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/chriskite/anemone" rel="nofollow" target="_blank" title=""&gt;anemone&lt;/a&gt; - Anemone web-spider framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peterc/pismo" rel="nofollow" target="_blank" title=""&gt;Pismo&lt;/a&gt; - Pismo extracts and retrieves content-related metadata from HTML pages - you can use the resulting data in an organized way, such as a summary/first paragraph, body text, keywords, RSS feed URL, favicon, etc.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jaimeiniesta/metainspector" rel="nofollow" target="_blank" title=""&gt;metainspector&lt;/a&gt; - MetaInspector lets you scrape a web page and get its links, images, texts, meta tags...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gottfrois/link_thumbnailer" rel="nofollow" target="_blank" title=""&gt;link_thumbnailer&lt;/a&gt; - Ruby gem generating thumbnail images from a given URL.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/seamusabshere/data_miner" rel="nofollow" target="_blank" title=""&gt;data_miner&lt;/a&gt; - Download, pull out of a ZIP/TAR/GZ/BZ2 archive, parse, correct, and import XLS, ODS, XML, CSV, HTML, etc. into your ActiveRecord models. Uses Upsert internally for speed.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stewartmckee/cobweb" rel="nofollow" target="_blank" title=""&gt;cobweb&lt;/a&gt; - Cobweb is a web crawler that can use resque to cluster crawls to quickly crawl extremely large sites which is much more performant than multi-threaded crawlers. It is also a standalone crawler that has a sophisticated statistics monitoring interface to monitor the progress of the crawls.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gurgeous/sinew" rel="nofollow" target="_blank" title=""&gt;sinew&lt;/a&gt; - Crawl web sites easily using ruby recipes, with caching and nokogiri.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/hulihanapplications/fletcher" rel="nofollow" target="_blank" title=""&gt;fletcher&lt;/a&gt; - Easily fetch product information from third party websites such as Amazon, Steam, eBay, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="XML Mapping"&gt;XML Mapping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/savonrb/gyoku" rel="nofollow" target="_blank" title=""&gt;Gyoku&lt;/a&gt; - Gyoku translates Ruby Hashes to XML&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/savonrb/nori" rel="nofollow" target="_blank" title=""&gt;nori&lt;/a&gt; - XML to Hash translator&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pauldix/sax-machine" rel="nofollow" target="_blank" title=""&gt;Sax-machine&lt;/a&gt; - Declarative SAX Parsing with Nokogiri, Ox or Oga&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnunemaker/happymapper" rel="nofollow" target="_blank" title=""&gt;Happymapper&lt;/a&gt; - object to xml mapping library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Empact/roxml" rel="nofollow" target="_blank" title=""&gt;Roxml&lt;/a&gt; - ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML. Using simple annotations, it enables Ruby classes to be mapped to XML. ROXML takes care of the marshalling and unmarshalling of mapped attributes so that developers can focus on building first-class Ruby classes. As a result, ROXML simplifies the development of RESTful applications, Web Services, and XML-RPC.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dam5s/happymapper" rel="nofollow" target="_blank" title=""&gt;nokogiri-happymapper&lt;/a&gt; - Object to XML Mapping Library, using Nokogiri (fork from John Nunemaker's Happymapper)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/soulcutter/saxerator" rel="nofollow" target="_blank" title=""&gt;saxerator&lt;/a&gt; - Saxerator is a streaming xml-to-hash parser designed for working with very large xml files by giving you Enumerable access to manageable chunks of the document.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mdub/representative" rel="nofollow" target="_blank" title=""&gt;Representative&lt;/a&gt; - Builds XML and JSON representations of your Ruby objects&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/monterail/saxy" rel="nofollow" target="_blank" title=""&gt;saxy&lt;/a&gt; - Saxy finds object definitions in XML files and translates them into Ruby objects. It uses SAX parser under the hood, which means that it doesn't load the whole XML file into memory. It goes once though it and yields objects along the way.&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>debbbbie</author>
      <pubDate>Mon, 05 Dec 2016 08:36:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/31793</link>
      <guid>https://ruby-china.org/topics/31793</guid>
    </item>
    <item>
      <title>[译] Awesome Rails Gem 中文版</title>
      <description>&lt;h2 id="Awesome Rails Gem zh-CN "&gt;Awesome Rails Gem zh-CN &lt;a href="https://github.com/sindresorhus/awesome" rel="nofollow" target="_blank" title=""&gt;&lt;img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" title="" alt="Awesome"&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Awesome Rails Gem 中文版&lt;/p&gt;

&lt;p&gt;熟悉大牛们写的 gem，不用重复造轮子，将更多的精力放到更有意义的事情上。&lt;/p&gt;

&lt;p&gt;欢迎 Star &amp;amp; Fork ~~ &lt;a href="https://github.com/debbbbie/awesome-rails-gem-zh_CN" rel="nofollow" target="_blank"&gt;https://github.com/debbbbie/awesome-rails-gem-zh_CN&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="用户"&gt;用户&lt;/h2&gt;&lt;h3 id="认证"&gt;认证&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/devise/" rel="nofollow" target="_blank" title=""&gt;Devise&lt;/a&gt; - 用于快速构建用户功能，如：注册，登陆，个人设置，找回密码...&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nsarno/knock" rel="nofollow" target="_blank" title=""&gt;Knock&lt;/a&gt; - 符合 JWT (JSON Web Token) 规范的认证 API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/clearance" rel="nofollow" target="_blank" title=""&gt;Clearance&lt;/a&gt; - 基于邮箱密码认证&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lynndylanhurley/devise_token_auth" rel="nofollow" target="_blank" title=""&gt;Devise token auth&lt;/a&gt; - 基于 Token 认证的 JSON API&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="授权"&gt;授权&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/elabs/pundit" rel="nofollow" target="_blank" title=""&gt;Pundit&lt;/a&gt; - Pundit 提供一系列方法来扩展 Ruby 的基本类和面相对象的设计模式，用以构建简单、强壮、可伸缩的认证系统&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/CanCanCommunity/cancancan" rel="nofollow" target="_blank" title=""&gt;cancancan&lt;/a&gt; - 扩展 CanCan，可以规定某个用户拥有哪些资源，所有权限都定义在一个单独的地方 ( Ability 类) &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/RolifyCommunity/rolify" rel="nofollow" target="_blank" title=""&gt;rolify&lt;/a&gt; - 角色管理&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/be9/acl9/" rel="nofollow" target="_blank" title=""&gt;acl9&lt;/a&gt; - 基于角色的认证系统，并且提供简洁的 DSL&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Omniauth"&gt;Omniauth&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mkdynamic/omniauth-facebook" rel="nofollow" target="_blank" title=""&gt;omniauth-facebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zquestz/omniauth-google-oauth2" rel="nofollow" target="_blank" title=""&gt;omniauth-google-oauth2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/beenhero/omniauth-weibo-oauth2" rel="nofollow" target="_blank" title=""&gt;omniauth-weibo-oauth2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/arunagw/omniauth-twitter" rel="nofollow" target="_blank" title=""&gt;omniauth-twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/intridea/omniauth-github" rel="nofollow" target="_blank" title=""&gt;omniauth-github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/decioferreira/omniauth-linkedin-oauth2" rel="nofollow" target="_blank" title=""&gt;omniauth-linkedin-oauth2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="模型"&gt;模型&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/brainspec/enumerize" rel="nofollow" target="_blank" title=""&gt;Enumerize&lt;/a&gt; - 适用枚举类型的属性，支持 i18n、activerecord、mongoid，并可以集成到 Simple Form&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/magnusvk/counter_culture" rel="nofollow" target="_blank" title=""&gt;counter_culture&lt;/a&gt; - 计数缓存&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cedric/custom_counter_cache" rel="nofollow" target="_blank" title=""&gt;custom_counter_cache&lt;/a&gt; - 简单的自定义技术缓存，可以在 model 间共用&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/djreimer/sequenced" rel="nofollow" target="_blank" title=""&gt;Sequenced&lt;/a&gt; - 管理 排序性 id 的 gem&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/norman/friendly_id" rel="nofollow" target="_blank" title=""&gt;FriendlyId&lt;/a&gt; - URL 友好的 ID &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/aasm/aasm" rel="nofollow" target="_blank" title=""&gt;AASM&lt;/a&gt; - 状态机&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/airblade/paper_trail" rel="nofollow" target="_blank" title=""&gt;PaperTrail&lt;/a&gt; - 记录版本、审计用的，记录数据的变化&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubysherpas/paranoia" rel="nofollow" target="_blank" title=""&gt;paranoia&lt;/a&gt; - 假删除&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kaize/validates" rel="nofollow" target="_blank" title=""&gt;Validates&lt;/a&gt; - 提供一系列有用的自定义验证，包括 Email, Url, Slug, Money, Ip, AssociationLength, AbsolutePath, UriComponent, Color, Ean&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/globalize/globalize" rel="nofollow" target="_blank" title=""&gt;globalize&lt;/a&gt; - 数据翻译中的 i18n 库&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/moiristo/deep_cloneable" rel="nofollow" target="_blank" title=""&gt;deep_cloneable&lt;/a&gt; - 深度拷贝、支持关系拷贝、可选拷贝&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Timrael/social_shares" rel="nofollow" target="_blank" title=""&gt;social_shares&lt;/a&gt; - 检查 url 在社交网络中的共享次数&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chaps-io/public_activity" rel="nofollow" target="_blank" title=""&gt;public_activity&lt;/a&gt; - 活动追踪，类似 github 的 Public Activity&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/salsify/goldiloader" rel="nofollow" target="_blank" title=""&gt;goldiloader&lt;/a&gt; - activerecode 预加载，用来减少数据库查询次数&lt;/li&gt;
&lt;li&gt;Tagging

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mbleigh/acts-as-taggable-on" rel="nofollow" target="_blank" title=""&gt;ActsAsTaggableOn&lt;/a&gt; - 打标记&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mceachen/closure_tree" rel="nofollow" target="_blank" title=""&gt;closure_tree&lt;/a&gt; - 多层级标记&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="插件"&gt;插件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/zdavatz/spreadsheet" rel="nofollow" target="_blank" title=""&gt;Spreadsheet&lt;/a&gt; - 读写 Spreadsheet 文档&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/chartkick" rel="nofollow" target="_blank" title=""&gt;Chartkick&lt;/a&gt; - 用一行 ruby 代码创建漂亮的 js 图表&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/amatsuda/kaminari" rel="nofollow" target="_blank" title=""&gt;kaminari&lt;/a&gt; - 很火的分页插件&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/galetahub/ckeditor" rel="nofollow" target="_blank" title=""&gt;CKEditor&lt;/a&gt; - 所见即所得编辑器&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jch/html-pipeline" rel="nofollow" target="_blank" title=""&gt;HTML::Pipeline&lt;/a&gt; - html 处理器&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/stevenosloan/slack-notifier" rel="nofollow" target="_blank" title=""&gt;Slack Notifier&lt;/a&gt; 给 slack 发通知&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/voormedia/rails-erd" rel="nofollow" target="_blank" title=""&gt;Rails ERD&lt;/a&gt; - 生成实体关系图&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/parity" rel="nofollow" target="_blank" title=""&gt;Parity&lt;/a&gt; - 为 heroku 提供 shell 命令&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattbrictson/airbrussh" rel="nofollow" target="_blank" title=""&gt;Airbrussh&lt;/a&gt; - 美化 SSHKit 和 Capistrano 的输出内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="API"&gt;API&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-grape/grape" rel="nofollow" target="_blank" title=""&gt;Grape&lt;/a&gt; - 提供 REST-ful APIs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails-api/active_model_serializers" rel="nofollow" target="_blank" title=""&gt;ActiveModel::Serializers&lt;/a&gt; - 通过配置方便生成 JSON&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/jbuilder" rel="nofollow" target="_blank" title=""&gt;Jbuilder&lt;/a&gt; - 提供 DSL 来定义 JSON 结构&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rest-client/rest-client" rel="nofollow" target="_blank" title=""&gt;rest-client&lt;/a&gt; - HTTP 和 REST 客户端&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/has_scope" rel="nofollow" target="_blank" title=""&gt;has_scope&lt;/a&gt; - 在 controller 中使用 named scopes&lt;/li&gt;
&lt;li&gt;Documentation

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ruby-grape/grape-swagger" rel="nofollow" target="_blank" title=""&gt;Grape Swagger&lt;/a&gt; - 为 Grape API 自动生成文档&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/swagger-api/swagger-ui" rel="nofollow" target="_blank" title=""&gt;Grape Swagger UI&lt;/a&gt; - Grape Swagger 的界面&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apiary.io/" rel="nofollow" target="_blank" title=""&gt;apiary&lt;/a&gt; - [收费] 团队协作工具，一起设计、原型、文档和测试 API&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apiblueprint.org" rel="nofollow" target="_blank" title=""&gt;apiblueprint&lt;/a&gt; - API 文档&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="邮件"&gt;邮件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/letter_opener" rel="nofollow" target="_blank" title=""&gt;letter_opener&lt;/a&gt; - 在浏览器中预览邮件，而不用真实的发送&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="文件上传"&gt;文件上传&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/carrierwaveuploader/carrierwave" rel="nofollow" target="_blank" title=""&gt;Carrierwave&lt;/a&gt; - 为 Rails, Sinatra 等框架负责文件上传，很流行

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/lardawge/carrierwave_backgrounder" rel="nofollow" target="_blank" title=""&gt;carrierwave_backgrounder&lt;/a&gt; - 分流图片处理、并且在后台存储，用 Delayed Job, Resque, Sidekiq 等&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kirtithorat/carrierwave-crop/" rel="nofollow" target="_blank" title=""&gt;CarrierWave Crop&lt;/a&gt; - 裁剪上传的图片&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jtescher/carrierwave-imageoptimizer" rel="nofollow" target="_blank" title=""&gt;CarrierWave ImageOptimizer&lt;/a&gt; - 优化上传的图片&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/JangoSteve/remotipart" rel="nofollow" target="_blank" title=""&gt;remotipart&lt;/a&gt; - Rails jQuery 上传控件&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/minimagick/minimagick" rel="nofollow" target="_blank" title=""&gt;MiniMagick&lt;/a&gt; - ImageMagick/GraphicsMagick 的 ruby 包装&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/fog/fog" rel="nofollow" target="_blank" title=""&gt;fog&lt;/a&gt; - 云服务管理&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/refile/refile" rel="nofollow" target="_blank" title=""&gt;refile&lt;/a&gt; - 流行的上传库&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/paperclip" rel="nofollow" target="_blank" title=""&gt;Paperclip&lt;/a&gt; - ActiveRecord 附件管理&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://markevans.github.io/dragonfly" rel="nofollow" target="_blank" title=""&gt;Dragonfly&lt;/a&gt; -  on-the-fly 上传工具 &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="搜索"&gt;搜索&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/activerecord-hackery/ransack" rel="nofollow" target="_blank" title=""&gt;ransack&lt;/a&gt; - 可以创建简单或复杂的搜索表单&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/elastic/elasticsearch-rails" rel="nofollow" target="_blank" title=""&gt;elasticsearch-rails&lt;/a&gt; - 集成 Elasticsearch &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/toptal/chewy" rel="nofollow" target="_blank" title=""&gt;Chewy&lt;/a&gt; - 高度集成 Elasticsearch&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/averell23/chewy_kiqqer" rel="nofollow" target="_blank" title=""&gt;Chewy_Kiqqer&lt;/a&gt; - [不再维护]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Casecommons/pg_search" rel="nofollow" target="_blank" title=""&gt;pg_search&lt;/a&gt; - 充分利用 postgres 的优势&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sunspot/sunspot" rel="nofollow" target="_blank" title=""&gt;sunspot&lt;/a&gt; - 与 Solr 集成 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/searchkick" rel="nofollow" target="_blank" title=""&gt;searchkick&lt;/a&gt; - 集成 Elasticsearch&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="定时任务"&gt;定时任务&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/javan/whenever" rel="nofollow" target="_blank" title=""&gt;Whenever&lt;/a&gt; - 定时任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/resque/resque" rel="nofollow" target="_blank" title=""&gt;Resque&lt;/a&gt; - 基于 Redis 的后台延时处理任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jmettraux/rufus-scheduler" rel="nofollow" target="_blank" title=""&gt;Rufus-Scheduler&lt;/a&gt; - 又一个定时任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/collectiveidea/delayed_job" rel="nofollow" target="_blank" title=""&gt;Delayed Job&lt;/a&gt; -  基于数据库的后台延时处理任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mperham/sidekiq" rel="nofollow" target="_blank" title=""&gt;Sidekiq&lt;/a&gt; - 后台延时处理任务

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/tobiassvn/sidetiq" rel="nofollow" target="_blank" title=""&gt;sidetiq&lt;/a&gt; - Sidekiq 的循环任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ondrejbartas/sidekiq-cron" rel="nofollow" target="_blank" title=""&gt;sidekiq-cron&lt;/a&gt; - Sidekiq 的又一个循环任务&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Moove-it/sidekiq-scheduler" rel="nofollow" target="_blank" title=""&gt;sidekiq-scheduler&lt;/a&gt; -  Sidekiq 的又一个循环任务&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/brandonhilkert/sucker_punch" rel="nofollow" target="_blank" title=""&gt;Sucker Punch&lt;/a&gt; - 后台延时处理任务，不需要额外进程&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="视图"&gt;视图&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/justinfrench/formtastic" rel="nofollow" target="_blank" title=""&gt;formtastic&lt;/a&gt; - 创建表单的 DSL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/simple_form" rel="nofollow" target="_blank" title=""&gt;Simple Form&lt;/a&gt; - 更加灵活的表单 DSL&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/nested_form" rel="nofollow" target="_blank" title=""&gt;Nested Form&lt;/a&gt; - 级联的表单 DSL，兼容 Simple Form&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kpumuk/meta-tags" rel="nofollow" target="_blank" title=""&gt;meta-tags&lt;/a&gt; - SEO 相关的库&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/comfy/active_link_to" rel="nofollow" target="_blank" title=""&gt;active_link_to&lt;/a&gt; - 根据当前 url 自动加 active 样式&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/apotonick/cells" rel="nofollow" target="_blank" title=""&gt;cells&lt;/a&gt; - 把公用的 UI 写到 view models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/onomojo/i18n_country_select" rel="nofollow" target="_blank" title=""&gt;i18n Country Code Select&lt;/a&gt; - 国家代码列表&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cllns/subdivision_select" rel="nofollow" target="_blank" title=""&gt;Subdivision Select&lt;/a&gt; - 二级下拉列表，包括国家、省&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/nathanvda/cocoon" rel="nofollow" target="_blank" title=""&gt;cocoon&lt;/a&gt; - 级联的表单 DSL&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="环境变量"&gt;环境变量&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsconfig/config" rel="nofollow" target="_blank" title=""&gt;Config&lt;/a&gt; - 多环境的 YAML 配置文件&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/laserlemon/figaro" rel="nofollow" target="_blank" title=""&gt;Figaro&lt;/a&gt; - 针对 heroku 的配置办法&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bkeepers/dotenv" rel="nofollow" target="_blank" title=""&gt;dotenv&lt;/a&gt; - 将环境变量写到 .env 文件中&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mikamai/opsworks-dotenv" rel="nofollow" target="_blank" title=""&gt;opsworks-dotenv&lt;/a&gt; - 用 OpsWorks, Chef 和 Dotenv 配置环境变量&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="后台管理"&gt;后台管理&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://activeadmin.info" rel="nofollow" target="_blank" title=""&gt;ActiveAdmin&lt;/a&gt; - 后台管理框架

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rstgroup/active_skin" rel="nofollow" target="_blank" title=""&gt;active_skin&lt;/a&gt;: 为 ActiveAdmin 制作的皮肤&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sferik/rails_admin" rel="nofollow" target="_blank" title=""&gt;RailsAdmin&lt;/a&gt; - 后台管理&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/typus/typus" rel="nofollow" target="_blank" title=""&gt;Typus&lt;/a&gt; - 管理界面，让受信任用户管理数据&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/administrate" rel="nofollow" target="_blank" title=""&gt;administrate&lt;/a&gt; - 灵活的后台管理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="日志"&gt;日志&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/charlotte-ruby/impressionist" rel="nofollow" target="_blank" title=""&gt;Impressionist&lt;/a&gt; - 记录页面访问情况，还可以为一个访问记录几次&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/ahoy" rel="nofollow" target="_blank" title=""&gt;Ahoy&lt;/a&gt; - 记录访问情况，和事件&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/roidrage/lograge" rel="nofollow" target="_blank" title=""&gt;Lograge&lt;/a&gt; - 改变 rails 默认的日志，使变得更好&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="调试"&gt;调试&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/deivid-rodriguez/byebug" rel="nofollow" target="_blank" title=""&gt;byebug&lt;/a&gt; - 简单易用，不依赖其他代码

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/deivid-rodriguez/pry-byebug" rel="nofollow" target="_blank" title=""&gt;pry-byebug&lt;/a&gt; - 集成 Pry 与 byebug&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rweng/pry-rails" rel="nofollow" target="_blank" title=""&gt;pry-rails&lt;/a&gt; - 使用 pry 打开 rails console&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/michaeldv/awesome_print" rel="nofollow" target="_blank" title=""&gt;awesome_print&lt;/a&gt; - 将 ruby 对象打印的更加漂亮&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/web-console" rel="nofollow" target="_blank" title=""&gt;web-console&lt;/a&gt; - 把 console 加到 rails 中&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rails/spring" rel="nofollow" target="_blank" title=""&gt;spring&lt;/a&gt; -  rails 预加载&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/josevalim/rails-footnotes" rel="nofollow" target="_blank" title=""&gt;rails-footnotes&lt;/a&gt; - 将调试信息显示到脚注&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jugyo/g" rel="nofollow" target="_blank" title=""&gt;g&lt;/a&gt; - [不更新]&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/julienXX/terminal-notifier" rel="nofollow" target="_blank" title=""&gt;terminal-notifier&lt;/a&gt; - 发送 Mac OS X 通知&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ryanb/letter_opener" rel="nofollow" target="_blank" title=""&gt;letter_opener&lt;/a&gt; - 在浏览器中预览邮件，而不用真实的发送&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/charliesome/better_errors" rel="nofollow" target="_blank" title=""&gt;Better Errors&lt;/a&gt; - 替代原生的错误页面，更加漂亮有用&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dejan/rails_panel" rel="nofollow" target="_blank" title=""&gt;RailsPanel&lt;/a&gt; - Chrome 扩展，在浏览器上更好的显示 rails 日志&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="代码风格"&gt;代码风格&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/bbatsov/rubocop" rel="nofollow" target="_blank" title=""&gt;RuboCop&lt;/a&gt; - 代码分析，遵循很多代码规范&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/railsbp/rails_best_practices" rel="nofollow" target="_blank" title=""&gt;Rails Best Practice&lt;/a&gt; - 检查代码质量&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/metricfu/metric_fu" rel="nofollow" target="_blank" title=""&gt;Metric Fu&lt;/a&gt; - 检查代码质量&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mmozuras/pronto" rel="nofollow" target="_blank" title=""&gt;Pronto&lt;/a&gt; - 自动检查变化的代码，与 github 集成&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="测试"&gt;测试&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rspec/rspec-rails" rel="nofollow" target="_blank" title=""&gt;rspec-rails&lt;/a&gt; - 测试框架&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/jnicklas/capybara" rel="nofollow" target="_blank" title=""&gt;Capybara&lt;/a&gt; -模拟真实用户交互 测试 Web 应用，有这些驱动：

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/capybara-webkit" rel="nofollow" target="_blank" title=""&gt;capybara-webkit&lt;/a&gt; - 使用 QtWebkit 的 webkit&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vertis/selenium-webdriver" rel="nofollow" target="_blank" title=""&gt;selenium-webdriver&lt;/a&gt; - webdriver 支持&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/teampoltergeist/poltergeist" rel="nofollow" target="_blank" title=""&gt;poltergeist&lt;/a&gt; - headless WebKit browser，使用 PhantomJS&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cheezy/page-object" rel="nofollow" target="_blank" title=""&gt;page-object&lt;/a&gt; - 创建灵活的页面对象来做 web 测试&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/factory_girl" rel="nofollow" target="_blank" title=""&gt;factory_girl&lt;/a&gt; - 专门用来构造模拟测试数据的，完美替代 Fixture 的工具&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/factory_girl_rails" rel="nofollow" target="_blank" title=""&gt;factory_girl_rails&lt;/a&gt; - factory_girl 集成到 Rails&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/st0012/factory_factory_girl" rel="nofollow" target="_blank" title=""&gt;factory_factory_girl&lt;/a&gt; - 根据命名规则，生成 factory 文件&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/DatabaseCleaner/database_cleaner" rel="nofollow" target="_blank" title=""&gt;Database Cleaner&lt;/a&gt; - 一系列清理数据库的策略&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/shoulda-matchers" rel="nofollow" target="_blank" title=""&gt;shoulda-matchers&lt;/a&gt; - 提供很多 matchers 来测试 Rails 的函数&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/r7kamura/response_code_matchers" rel="nofollow" target="_blank" title=""&gt;ResponseCodeMatchers&lt;/a&gt; -  rspec matchers 匹配 http 返回值&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/colszowka/simplecov" rel="nofollow" target="_blank" title=""&gt;SimpleCov&lt;/a&gt; - 代码测试覆盖分析工具&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/travisjeffery/timecop" rel="nofollow" target="_blank" title=""&gt;Timecop&lt;/a&gt; - 用来测试时间相关，可以冻结时间、时间旅行&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vcr/vcr" rel="nofollow" target="_blank" title=""&gt;VCR&lt;/a&gt; - 记录 http 的返回内容，并在以后的测试中快速准确的重现&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="安全"&gt;安全&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/presidentbeef/brakeman" rel="nofollow" target="_blank" title=""&gt;brakeman&lt;/a&gt; - 静态分析工具，检查程序的安全缺陷&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rubysec/bundler-audit" rel="nofollow" target="_blank" title=""&gt;bundle-audit&lt;/a&gt; - 检查 Bundle 的补丁等级，包括易受攻击版本和不安全的 gem 源等&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/twitter/secureheaders" rel="nofollow" target="_blank" title=""&gt;Secure Headers&lt;/a&gt; -  自动设置安全相关的 headers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="生产"&gt;生产&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/capistrano/capistrano" rel="nofollow" target="_blank" title=""&gt;Capistrano&lt;/a&gt; - 远程服务器部署工具&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/slowpoke" rel="nofollow" target="_blank" title=""&gt;Slowpoke&lt;/a&gt; - Rack::Timeout 的升级版&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kickstarter/rack-attack" rel="nofollow" target="_blank" title=""&gt;Rack Attack&lt;/a&gt; - 防止恶意攻击、限制访问频率&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/plataformatec/responders" rel="nofollow" target="_blank" title=""&gt;Responders&lt;/a&gt; - 一系列 responders &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ankane/production_rails" rel="nofollow" target="_blank" title=""&gt;production_rails&lt;/a&gt; - Rails Best practices，一系列 Gem&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mina-deploy/mina" rel="nofollow" target="_blank" title=""&gt;Mina&lt;/a&gt; -  快速部署、服务器自动化工具&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="错误日志"&gt;错误日志&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rollbar/rollbar-gem" rel="nofollow" target="_blank" title=""&gt;Rollbar&lt;/a&gt; - 记录错误日志并汇总到 Rollbar&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/airbrake/airbrake" rel="nofollow" target="_blank" title=""&gt;Airbrake&lt;/a&gt; - 与 Airbrake 集成&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/errbit/errbit" rel="nofollow" target="_blank" title=""&gt;Errbit&lt;/a&gt; - 兼容 Airbrake，开源&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="资源管道"&gt;资源管道&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mavenlink/alaska" rel="nofollow" target="_blank" title=""&gt;Alaska&lt;/a&gt; - ExecJS 运行时保持与 nodejs 连接，加速 coffeescript 的编译和部署&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>debbbbie</author>
      <pubDate>Sun, 20 Nov 2016 20:02:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/31645</link>
      <guid>https://ruby-china.org/topics/31645</guid>
    </item>
    <item>
      <title>Ruby China React Native for Android 新鲜出炉</title>
      <description>&lt;p&gt;看到 React Native 的特性，真是倍感兴奋，又恰逢 Ruby China 没有新鲜的 Android 客户端好久没有更新了，便折腾了个版本。&lt;/p&gt;

&lt;p&gt;参考了很多前辈的源代码，再此一一致谢，源代码也会很快开源。&lt;/p&gt;

&lt;p&gt;对 React Native 的评价是，很强大，期待 React Native 有更好的发展。&lt;/p&gt;
&lt;h2 id="点此下载"&gt;&lt;a href="http://debbbbie.com/ruby-china-android.apk" rel="nofollow" target="_blank" title=""&gt;点此下载&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;(图片为神马不能横着排。。)
&lt;img src="https://l.ruby-china.com/photo/2015/0c92242be946f7e5b7512a2b92d85edf.png" title="" alt=""&gt;  &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/7e6c930aee8309dc9e62ba9498c0c35a.png" title="" alt=""&gt; &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/b2d6ab2c5767d4171a2beee1a5f79dee.png" title="" alt=""&gt; &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/8edad8f3d9d1e013fb45bb1ec3fc466c.png" title="" alt=""&gt; &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/bf9064a644caf1f53e5188c33f5d4218.png" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="TODO"&gt;TODO&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;登录&lt;/li&gt;
&lt;li&gt;评论&lt;/li&gt;
&lt;li&gt;更好的 loading 效果&lt;/li&gt;
&lt;li&gt;Splash Screen&lt;/li&gt;
&lt;li&gt;Cache&lt;/li&gt;
&lt;li&gt;用户页面&lt;/li&gt;
&lt;li&gt;缓存&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>debbbbie</author>
      <pubDate>Fri, 13 Nov 2015 14:26:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/28048</link>
      <guid>https://ruby-china.org/topics/28048</guid>
    </item>
    <item>
      <title>12306 漏洞致验证码破解泛滥</title>
      <description>&lt;p&gt;最近 12306 的验证码很火啊，再来一发~~
&lt;a href="http://wooyun.org/bugs/wooyun-2010-047660" rel="nofollow" target="_blank" title=""&gt;[乌云]12306 漏洞致验证码破解泛滥&lt;/a&gt;&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Sun, 05 Jan 2014 09:49:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/16632</link>
      <guid>https://ruby-china.org/topics/16632</guid>
    </item>
    <item>
      <title>今天你抢马币了吗？</title>
      <description>&lt;p&gt;&lt;a href="http://money.163.com/13/1224/09/9GROJ0IP00252V0H.html" rel="nofollow" target="_blank" title=""&gt;马年纪念币今起发售 还未面世已涨 30 倍&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我抢了 20 个，呵呵呵&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.chinanews.com/tp/2013/12-24/U401P4T8D5654772F107DT20131224094058.jpg" title="" alt="配图"&gt;&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Tue, 24 Dec 2013 10:31:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/16388</link>
      <guid>https://ruby-china.org/topics/16388</guid>
    </item>
    <item>
      <title>12306 曝重大漏洞 难挡 “刷票”</title>
      <description>&lt;p&gt;我的前篇文章，今天竟然上了各大新闻。。
&lt;a href="http://it.21cn.com/itnews/a/2013/1223/10/25674458.shtml" rel="nofollow" target="_blank"&gt;http://it.21cn.com/itnews/a/2013/1223/10/25674458.shtml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;大家帮忙看看，可以要稿费吗&lt;/p&gt;

&lt;p&gt;网易新闻删除了，看其他网站的把。。。&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Mon, 23 Dec 2013 12:29:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/16373</link>
      <guid>https://ruby-china.org/topics/16373</guid>
    </item>
    <item>
      <title>12306 验证码简单识别</title>
      <description>&lt;p&gt;12306 的图形验证码非常简单，简单的程序即可识别。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://debbbbie.github.io/img/12306/1-1.png" title="" alt="1-1"&gt;&lt;/p&gt;

&lt;p&gt;利用 photoshop 的色调分离技术，即可得到辨识度很高的图片。
色调分离很容易实现，比如当参数为 3 时，会把图片红蓝绿每个通道简化成 3 个颜色值，并最终形成 3 x 3 = 9 个颜色值。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://debbbbie.github.io/img/12306/1-2.png" title="" alt="1-2"&gt;&lt;/p&gt;

&lt;p&gt;然后配上简单的优化，即把没有上下相邻都没有颜色的点排除掉。
&lt;img src="http://debbbbie.github.io/img/12306/1-3.png" title="" alt="1-3"&gt;&lt;/p&gt;

&lt;p&gt;将此图片交给 Tesseract-OCR，10% 的识别率有木有。&lt;/p&gt;

&lt;p&gt;10% 的合格率已经合格了哟，配上代理服务器，还有 gem &lt;code&gt;useragents&lt;/code&gt;。。。&lt;/p&gt;

&lt;p&gt;附 色调分离的代码实现（python 版）&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;color_sep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;127&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;127&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;127&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;

    &lt;span class="n"&gt;pix&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;xrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;xrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;deep_color&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;target_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;255.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mf"&gt;255.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mf"&gt;255.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;xrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;xrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;deep_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;target_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; \
                    &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;deep_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;target_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; \
                    &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;pix&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;deep_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;target_color&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实验结果，采集途径北京北站的火车&lt;/p&gt;

&lt;p&gt;&lt;img src="http://debbbbie.github.io/img/12306/1-5.png" title="" alt="1-5"&gt;&lt;/p&gt;

&lt;p&gt;[声明]：此文仅为技术探讨贴，并已提交至 &lt;a href="http://WooYun.org" rel="nofollow" target="_blank"&gt;http://WooYun.org&lt;/a&gt;，请勿跨省 = =！&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Sun, 22 Dec 2013 01:31:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/16363</link>
      <guid>https://ruby-china.org/topics/16363</guid>
    </item>
    <item>
      <title>让爬虫轻松一点~(一)</title>
      <description>&lt;p&gt;在信息大爆炸的互联网，数据多的烦不胜数，想要人为的统计某类信息，恐怕越来越难了，这时候就需要爬虫的帮助了，一如 &lt;code&gt;360 爬取百度的百科、知道&lt;/code&gt;，&lt;code&gt;一淘爬取各大电商的产品、用户评论&lt;/code&gt;，&lt;code&gt;百姓网从赶集网页面上收集其用户公开的 QQ 邮箱并发送推广邮件&lt;/code&gt;。。。&lt;/p&gt;

&lt;p&gt;随着爬虫的发展，已经严重危害了目标网站的服务质量及数据安全，于是他们开始各种围追堵截。道高一尺魔高一丈，我们的爬虫终究能够突破层层壁垒，拿到想要的数据。&lt;/p&gt;

&lt;p&gt;今天，我们就做一件事，让爬虫更智能。一般的服务器都会判断访问来源的 &lt;code&gt;User-Agent&lt;/code&gt;，适时的更换一下你的 &lt;code&gt;User-Agent&lt;/code&gt;，无非是个明智之举。
Gem &lt;code&gt;useragents&lt;/code&gt;，已经为您封装了此项需求，只需拿来即用就行。用法非常简单：&lt;/p&gt;

&lt;p&gt;首先安装一下本 gem，&lt;code&gt;gem install useragents&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;然后对代码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'httparty'&lt;/span&gt;

&lt;span class="no"&gt;HTTParty&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'http://ruby-china.org'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更改成这样即可&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'useragents'&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;UserAgents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# 从 500 多个 User-Agent 中随机选出一个&lt;/span&gt;
&lt;span class="c1"&gt;# =&amp;gt; "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36"&lt;/span&gt;
&lt;span class="no"&gt;HTTParty&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'http://ruby-china.org'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:headers&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;'User-Agent'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;useragents&lt;/code&gt;  全部收集于流行浏览器 &lt;code&gt;Chrome, Opera, Safari, InternetExplorer, Firexof&lt;/code&gt;，并剔除了其中的老旧版本，最终保留了 500 多个 &lt;code&gt;User-Agent&lt;/code&gt;，并会定时更新。&lt;/p&gt;

&lt;p&gt;附上 &lt;code&gt;github&lt;/code&gt; 地址 &lt;a href="https://github.com/debbbbie/useragents-rb" rel="nofollow" target="_blank" title=""&gt;https://github.com/debbbbie/useragents-rb&lt;/a&gt;，欢迎 &lt;code&gt;fork&lt;/code&gt; 或提交 &lt;code&gt;issues&lt;/code&gt; 。&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Sat, 21 Dec 2013 19:35:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/16359</link>
      <guid>https://ruby-china.org/topics/16359</guid>
    </item>
    <item>
      <title>解析 Github 的默认头像</title>
      <description>&lt;p&gt;Github 给无头像用户生成 5x5 像素的 Identicons 头像，请看 Github 官方的例子，很好看的样子啊：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://raw.github.com/debbbbie/debbbbie.github.io/master/img/github_identicons.png" title="" alt="Github 官方的例子"&gt;&lt;/p&gt;

&lt;p&gt;这一生成过程使用了用户 ID 的哈希值，然后根据哈希值每一位的奇偶值来决定对应位置上的像素的开关。这样生成
的图像，配上由哈希值决定的颜色，保证可生成大量独一无二的图像。&lt;/p&gt;

&lt;p&gt;有 Gravatar 头像的用户也可以查看自己的 Identicon 头像，这样的地址：
&lt;a href="https://identicons.github.com/debbbbie.png" rel="nofollow" target="_blank" title=""&gt;https://identicons.github.com/debbbbie.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PS:我自己的 identicon 头像好丑啊，好像什么？&lt;img src="https://raw.github.com/debbbbie/debbbbie.github.io/master/img/identicon_on_github.png" title="" alt="identicon on github"&gt;&lt;/p&gt;

&lt;hr&gt;
&lt;h2 id="Identicon Gems"&gt;Identicon Gems&lt;/h2&gt;
&lt;p&gt;以下介绍相关的 gem，超好用哦，赶快用到你的网站吧！&lt;/p&gt;
&lt;h3 id="ruby_identicon"&gt;&lt;a href="https://github.com/chrisbranson/ruby_identicon" rel="nofollow" target="_blank" title=""&gt;&lt;code&gt;ruby_identicon&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;{% highlight ruby %}
    require 'ruby_identicon'
    RubyIdenticon.create_and_save("debbbbie", "ruby_identicon.png")
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;这是生成的样图：&lt;img src="https://raw.github.com/debbbbie/debbbbie.github.io/master/img/gem_ruby_identicon_debbbbie.png" title="" alt="DEMO"&gt;&lt;/p&gt;
&lt;h3 id="identicon"&gt;&lt;a href="https://github.com/victorgama/identicon" rel="nofollow" target="_blank" title=""&gt;&lt;code&gt;identicon&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;{% highlight ruby %}
    require 'identicon'
    Identicon.file_for "debbbbie", "debbbbie.png"
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;同样是生成的样图：&lt;img src="https://raw.github.com/debbbbie/debbbbie.github.io/master/img/gem_identicon_debbbbie.png" title="" alt="DEMO"&gt;&lt;/p&gt;

&lt;p&gt;更多图片和 gem，请来这里找寻吧~~
&lt;a href="http://debbbbie.github.io/blogs/github_default_avatar/" rel="nofollow" target="_blank"&gt;http://debbbbie.github.io/blogs/github_default_avatar/&lt;/a&gt;&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Wed, 18 Dec 2013 10:26:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/16268</link>
      <guid>https://ruby-china.org/topics/16268</guid>
    </item>
    <item>
      <title>发现一枚 RubyChina 的 BUG</title>
      <description>&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2013/c256e7efe2f232dbd7a2d735bc00fd71.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;不管我怎么刷新，都是这样，这一条去不掉啊。对于有 &lt;strong&gt;更新癖&lt;/strong&gt; 和 &lt;strong&gt;强迫症&lt;/strong&gt; 的我来说，难受死了。 →_→&lt;/p&gt;

&lt;p&gt;想问一下，可以查一下这是个 bug 吗，会不会有普遍用户都有同样的问题。&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Mon, 16 Dec 2013 18:55:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/16233</link>
      <guid>https://ruby-china.org/topics/16233</guid>
    </item>
    <item>
      <title>RubyChina 有没有计划做关注某人的功能</title>
      <description>&lt;p&gt;大牛好多，想关注自己喜欢的牛牛！&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Tue, 26 Nov 2013 14:30:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/15806</link>
      <guid>https://ruby-china.org/topics/15806</guid>
    </item>
    <item>
      <title>我大 RubyChina 为毛不自己做搜索，而是转向 Google 呢</title>
      <description>&lt;p&gt;小小的疑惑~&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Mon, 25 Nov 2013 16:55:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/15782</link>
      <guid>https://ruby-china.org/topics/15782</guid>
    </item>
    <item>
      <title>京东的客服妹妹萌爆了有木有，让人火气瞬间全无。。</title>
      <description>&lt;p&gt;京东的客服妹妹萌爆了有木有，让人火气瞬间全无。。&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2013/4a04ae36c43d0d3d4bee47a4c86b672a.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;这接都不知道该怎么话了&lt;/p&gt;

&lt;p&gt;继续爆图！&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2013/9379c217c1246b1b7c91185fcb1bc871.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Fri, 22 Nov 2013 14:38:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/15730</link>
      <guid>https://ruby-china.org/topics/15730</guid>
    </item>
    <item>
      <title>如果让小米来做 12306 铁路购票系统，将会是怎样的情形？</title>
      <description>&lt;p&gt;&lt;a href="http://www.zhihu.com/question/21909847" rel="nofollow" target="_blank"&gt;http://www.zhihu.com/question/21909847&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;欢迎各种黑~~~&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Fri, 22 Nov 2013 11:14:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/15723</link>
      <guid>https://ruby-china.org/topics/15723</guid>
    </item>
    <item>
      <title>用户不会截屏，是不是故意捣乱？还需要客服妹妹指导？</title>
      <description>&lt;p&gt;因为这个事，用户打电话有半个小时之久有木有&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2013/f3bbf72f0530ba9e40099e7e3a6b10bb.jpg" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;路过，听的我都笑尿了 &lt;img title=":smile:" alt="😄" src="https://twemoji.ruby-china.com/2/svg/1f604.svg" class="twemoji"&gt;&lt;/p&gt;</description>
      <author>debbbbie</author>
      <pubDate>Thu, 21 Nov 2013 16:32:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/15711</link>
      <guid>https://ruby-china.org/topics/15711</guid>
    </item>
  </channel>
</rss>
