2015-08-19



I asked something among the lines of this question and I'm going to leave the best of what I got here:
What are the most useful gems to use in Rails?

Abstraction

ActiveInteraction - Manage application specific business logic.

Cells - View Components for Rails

Interactor - Interactor provides a common interface for performing complex interactions in a single request

Light Service - Series of Actions with an emphasis on simplicity.

Mutations - Compose your business logic into commands that sanitize and validate input

Reform - Form objects decoupled from models.

Admin Interface

ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administration

bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user

RailsAdmin - A Rails engine that provides an easy-to-use interface for managing your data

Analytics

Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps

Gabba - Simple way to send server-side notifications to Google Analytics

Legato - Model analytics reports and queries against the official Google Analytics Reporting API

Staccato - Track analytics into the official Google Analytics Collection API

API Builder

ActiveModel::Serializers - JSON serialization of objects

Crêpe - The thin API stack

Grape - An opinionated micro-framework for creating REST-like APIs in Ruby

jbuilder - Create JSON structures via a Builder-style DSL

JSONAPI::Resources - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.

Jsonite - A tiny, HAL-compliant JSON presenter for your APIs

Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby

rabl - General ruby templating with json, bson, xml, plist and msgpack support

Rails::API - Rails for API only applications

Roar - Resource-Oriented Architectures in Ruby

Assets

Less Rails - The dynamic stylesheet language for the Rails asset pipeline.

Less - Leaner CSS, in your browser or Ruby.

Sass - Sass makes CSS fun again

Management:

Rails Assets - Bundler to Bower proxy

Sprockets - Rack-based asset packaging system

Authentication and OAuth

Authlogic

Clearance - Small and simple email & password based authenticaton for Rails

Devise - A flexible authentication solution for Rails based on Warden

OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware

Sorcery - Magical Authentication for Rails 3 and 4

OAuth:

Doorkeeper - An OAuth2 provider for Rails

OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol

Authorization

Authority ORM-neutral way to authorize actions in your Rails app.

CanCanCan

Pundit - Minimal authorization through OO design and pure Ruby classes

Caching

Action caching for Action Pack - Action caching for Action Pack

Dalli - A high performance pure Ruby client for accessing memcached servers

Record Cache - Cache Active Model Records in Rails 3

CLI Builder

Commander - The complete solution for Ruby command-line executables

GLI - Git-Like Interface Command Line Parser

Main - A class factory and DSL for generating command line programs real quick

Rake - A make-like build utility for Ruby

Slop - Simple Lightweight Option Parsing

Thor - A toolkit for building powerful command-line interfaces

CMS

Alchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMS

LocomotiveCMS - A simple but powerful CMS based on Liquid templates and Mongodb database

Publify - A self hosted Web publishing platform on Rails

Radiant - A no-fluff, open source content management system designed for small teams

Refinery CMS - An open source Ruby on Rails content management system for Rails 3 and 4

Code Analysis and Metrics

Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.

Flay - 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.

Flog - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.

fukuzatsu - Complexity analysis tool with a rich web front-end.

MetricFu - A fist full of code metrics

rails_best_practices - A code metric tool for rails projects

Reek - Code smell detector for Ruby

Rubocop - A static code analyzer, based on the community Ruby style guide.

Rubycritic - A Ruby code quality reporter.

SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.

Coding Style Guides

Rails style guide - Community-driven Rails best practices and style for Rails 3 and 4

RSpec style guide - Better Specs { rspec guidelines with ruby }

Ruby style guide - Community-driven Ruby coding style

Concurrency

Celluloid - Actor-based concurrent object framework for Ruby

Concurrent Ruby - Modern concurrency tools including agents, futures, promises, thread  pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go,  Java, JavaScript, and classic concurrency patterns.

EventMachine - An event-driven I/O and lightweight concurrency library for Ruby

Configuration

Configatron - Simple and feature rich configuration system for Ruby apps

Configus - Helps you easily manage environment specific settings

dotenv - Loads environment variables from .env

Econfig - Flexible configuration for Rails applications

Figaro - Simple, Heroku-friendly Rails app configuration using ENV and a single YAML file

Global - Provides accessor methods for your configuration data

RailsConfig - Multi-environment yaml settings for Rails3

Core Extensions

ActiveSupport - A collection of utility classes and standard library extensions.

Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.

Attributes

ActiveAttr - What ActiveModel left out

FastAttributes - FastAttributes adds attributes with their types to the class

Virtus - Attributes on Steroids for Plain Old Ruby Objects

Hash

Hashie - A collection of tools that extend Hashes and make them more useful

Country Data

Carmen - A repository of geographic regions

Countries - All sorts of useful information about every country packaged as pretty little country objects

i18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n

normalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs

Dashboards

Dashing-Rails - The exceptionally handsome dashboard framework for Rails.

Data Visualization

RailRoady - Ruby on Rails 3/4 model and controller UML class diagram generator.

Rails Erd - Generate Entity-Relationship Diagrams for Rails applications.

Ruby/GraphViz - Ruby interface to the GraphViz graphing tool

Database Drivers

Cassandra Driver - A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policies

DataObjects - An attempt to rewrite existing Ruby database drivers to conform to one, standard interface.

mongo-ruby-driver - MongoDB Ruby driver

moped - A MongoDB driver for Ruby

mysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql)

Redic - Lightweight Redis Client

redis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface

ruby-pg - Ruby interface to PostgreSQL 8.3 and later

SQLite3

Database Tools

Database Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.

PgHero - Postgres insights made easy

Seed dump - Rails 4 task to dump (parts) of your database to db/seeds.rb.

Seed Fu - Advanced seed data handling for Rails.

Date and Time Processing

business_time - Support for doing time math in business hours and days

Chronic - A natural language date/time parser written in pure Ruby

groupdate - The simplest way to group temporal data in ActiveRecord, arrays and hashes

time-lord - Adds extra functionality to the time class

time_diff - Calculates the difference between two time

validates_timeliness - Date and time validation plugin for ActiveModel and Rails

yymmdd - Tiny DSL for idiomatic date parsing and formatting

Debugging Tools

Byebug - A simple to use, feature rich debugger for Ruby 2.

debugger - A port of ruby-debug that works on 1.9.2 and 1.9.3.

Decorators

Draper - Draper adds an object-oriented layer of presentation logic to your Rails application

DevOps Tools

Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems

Capistrano - A remote server automation and deployment tool written in Ruby

Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure

Lita - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service.

Logstash - Logs/event transport, processing, management, search

Mina - Really fast deployer and server automation tool.

Puppet - An automated  administrative engine for your Linux, Unix, and Windows systems,  performs administrative tasks (such as adding users, installing  packages, and updating server configurations) based on a centralized  specification

Rubber - The rubber  plugin enables relatively complex multi-instance deployments of  RubyOnRails applications to Amazon's Elastic Compute Cloud (EC2).

Vagrant - Create and configure lightweight, reproducible, and portable development environments

Documentation

Asciidoctor - A fast, Ruby-based  text processor & publishing toolchain for converting AsciiDoc to  HTML5, DocBook, EPUB3, PDF & more.

grape-swagger - Add swagger compliant documentation to your Grape API

Inch - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARD

RDoc - RDoc produces HTML and command-line documentation for Ruby projects

YARD - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily

E-Commerce and Payments

Active Merchant - A simple payment abstraction library extracted from Shopify

Paypal Merchant SDK - Official Paypal Merchant SDK for Ruby

Piggybak - Modular, Extensible open-source ecommerce solution for Ruby on Rails

ROR Ecommerce

Shoppe - A Rails-based e-commerce platform which allows you to easily introduce a catalogue-based store into your Rails 4 applications

Spree

stripe-ruby - Stripe Ruby bindings

Ebook

Bookshop - Bookshop is a an open-source agile book development and publishing framework for authors, editors.

Eeepub - EeePub is a Ruby ePub generator.

Gepub - A generic EPUB library for Ruby : supports EPUB 3

Git Scribe - Basically the best way to write an ebook.

Mobi - A Ruby way to read MOBI format metadata

Review - Re:VIEW is flexible document format/conversion system

Email

Incoming - Incoming! helps you receive email in your Rack apps

LetterOpener - Preview mail in the browser instead of sending.

Mail - A Really Ruby Mail Library

MailCatcher - Catches mail and serves it through a dream

Mailman - An incoming mail processing microframework in Ruby

Pony - The express way to send mail from Ruby

Environment Management

chgems - Chroot for RubyGems

chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC

fry - Simple ruby version manager for fish

gem_home - A tool for changing your $GEM_HOME

rbenv - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production

ruby-build - Compile and install Ruby

ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby

RVM - RVM is a command-line tool which  allows you to easily install, manage, and work with multiple ruby  environments from interpreters to sets of gems

Error Handling

Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)

Better Errors - Better error page for Rack apps

Errbit - The open source, self-hosted error catcher

Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application

Nesty - Nested exceptions for Ruby

Raven Ruby - Raven is a Ruby client for Sentry.

File Upload

CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks

DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!

PaperClip - Easy file attachment management for ActiveRecord

rack-secure-upload - Upload files securely

Form Builder

Abracadabra - The gem that swaps out text with a fully-compliant Rails form in one click

Formtastic - A Rails form builder plugin with semantically rich and accessible markup

Rails Bootstrap Forms - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+

Simple Form - Rails forms made easy

Game Development

Gosu - A 2D game development library for the Ruby and C++ programming languages

Yeah - Practical Ruby video game framework

Geolocation

Geocoder - A  complete geocoding solution for Ruby. With Rails it adds geocoding (by  street or IP address), reverse geocoding (find street address based on  given coordinates), and distance queries

Geokit - Geokit gem provides geocoding and distance/heading calculations

Git Tools

git-auto-bisect - Find the commit that broke master

git-spelunk - Dig through git blame history

git-up - Fetch and rebase all locally-tracked remote branches

git-whence - Find which merge a commit came from

hub - a command line tool  that wraps Git in order to extend it with extra features and commands  that make working with GitHub easier

Rugged - Ruby bindings to libgit2

GUI

QtRuby - Qt4 binding for ruby

RubyGnome2

Shoes

HTML/XML Parsing

HappyMapper - Object to XML mapping library, using Nokogiri

Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support

ROXML - Custom mapping and  bidirectional marshalling between Ruby and XML using annotation-style  class methods, via Nokogiri or LibXML.

HTTP

excon - Usable, fast,  simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is  particularly well suited to usage in API clients.

Faraday

Http Client - Gives something like the functionality of libwww-perl (LWP) in Ruby

http - The HTTP Gem: a simple Ruby DSL for making HTTP requests.

httparty

Patron - Patron is a Ruby HTTP client library based on libcurl.

RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions

Savon - Savon is a SOAP client for the Ruby programming language.

Sawyer - Secret user agent of HTTP, built on top of Faraday

Typhoeus - Typhoeus wraps libcurl in order to make fast and reliable requests

Imagery

MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line

PSD.rb - Parse Photoshop files in Ruby with ease

RMagick - RMagick is an interface between Ruby and ImageMagick

Skeptick - Skeptick is an all-purpose DSL for building and running ImageMagick commands.

Internationalization

i18n-tasks - Manage missing and unused translations with the awesome power of static analysis

i18n - Ruby Internationalization and localization solution

r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.

twitter-cldr-rb - Ruby implementation of the ICU (International Components for Unicode)  that uses the Common Locale Data Repository to format dates, plurals,  and more

Logging

Cabin - Structured+contextual logging experiments in Ruby.

Fluentd - Fluentd collects events from various data sources and writes them to files, database or other types of storages

HttpLog - Log outgoing HTTP requests.

Log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programs

Logging - A flexible logging library for use in Ruby programs based on the design of Java's log4j library.

Lograge - An attempt to tame Rails' default policy to log everything.

MongoDB Logger - MongoDB logger for Rails

Scrolls - Simple logging

Yell - Your Extensible Logging Library

Machine Learning

PredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record  your users' behavior and retrieve personalized predictions for them

Ruby Datumbox Wrapper - It's a simple Ruby Datumbox Wrapper. At the moment the API currently  allows you to build applications that make use of machine learning  algorithms.

Markdown Processors

kramdown - Kramdown  is yet-another-markdown-pars

er but fast, pure Ruby, using a strict  syntax definition and supporting several common extensions

Maruku - A pure-Ruby Markdown-superset interpreter

Redcarpet - A fast, safe and extensible Markdown to (X)HTML parser

Misc

AASM - A library for adding finite state machines to Ruby classes

AXLSX - An excel xlsx generation library

Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty

Foreman - Manage Procfile-based applications</li

Show more