Awesome Rails Gem
A collection of awesome Ruby Gems for Rails development.
The goal is to help every Rails developer to build an awesome Rails product/service.
User
Authentication
- Devise - Devise is a flexible authentication solution for Rails based on Warden.
- Knock - Seamless JWT authentication for Rails API.
- Clearance - Rails authentication with email & password.
- Devise token auth - Token based authentication for Rails JSON APIs.
- Sorcery - Magical Authentication for Rails. Supports ActiveRecord, DataMapper, Mongoid and MongoMapper.
Authorization
- Pundit - Pundit provides a set of helpers which guide you in leveraging regular Ruby classes and object oriented design patterns to build a simple, robust and scaleable authorization system.
- cancancan - Continuation of CanCan, the authorization Gem for Ruby on Rails.CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. All permissions are defined in a single location (the Ability class) and not duplicated across controllers, views, and database queries.
- rolify - Role management library with resource scoping.
- acl9 - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.
Omniauth
Active Record
- Enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid support. It can be integrated with Simple Form.
- counter_culture - Turbo-charged counter caches for your Rails app. Huge improvements over the Rails standard counter caches.
- custom_counter_cache - A simple approach to creating a custom counter cache that can be used across multiple models.
- Sequenced - Sequenced is a simple gem that generates scoped sequential IDs for ActiveRecord models.
- FriendlyId - FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for ActiveRecord. It allows you to create pretty URL’s and work with human-friendly strings as if they were numeric ids for ActiveRecord models.
- AASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
- PaperTrail - PaperTrail lets you track changes to your models' data. It's good for auditing or versioning.
- paranoia - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
- Validates - Validates provides collection of useful custom validators for Rails applications, including:
- EmailValidator
- UrlValidator
- SlugValidator
- MoneyValidator
- IpValidator
- AssociationLengthValidator
- AbsolutePathValidator
- UriComponentValidator
- ColorValidator
- EanValidator (EAN-8 & EAN-13)
- globalize - Rails I18n de-facto standard library for ActiveRecord model/data translation.
- deep_cloneable - This gem gives every ActiveRecord::Base object the possibility to do a deep clone that includes user specified associations.
- social_shares - Check how many times url was shared in social networks.
- public_activity - Easy activity tracking for models - similar to Github's Public Activity.
- goldiloader - Automatic ActiveRecord eager loading to reduce the number of database queries run by your application.
- Tagging
- ActsAsTaggableOn - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
- closure_tree - Easily and efficiently make your ActiveRecord models support hierarchies.
- ActionStore - Store different kind of actions (Like, Follow, Star, Block ...) in one table via ActiveRecord Polymorphic Association.
Plugins
- Spreadsheet - Library is designed to read and write Spreadsheet Documents.
- Chartkick - Chartkick helps your to create beautiful Javascript charts with one line of Ruby.
- kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Rails 3 and 4.
- CKEditor - CKEditor is a WYSIWYG text editor designed to simplify web content creation. It brings common word processing features directly to your web pages. Enhance your website experience with our community maintained editor. ckeditor.com
- HTML::Pipeline - GitHub HTML processing filters and utilities. This module includes a small framework for defining DOM based content filters and applying them to user provided content.
- Slack Notifier is a simple wrapper to send notifications to Slack webhooks.
- Rails ERD - Generate Entity-Relationship Diagrams for Rails applications.
- Parity - Shell commands for development, staging, and production parity for Heroku apps.
- Airbrussh - Airbrussh pretties up your SSHKit and Capistrano output
API
- Grape - Microframework to create REST-ful APIs in Ruby.
- ActiveModel::Serializers - Serializer brings convention over configuration to your JSON generation.
- Jbuilder - Jbuilder gives you a simple DSL for declaring JSON structures that beats massaging giant hash structures. This is particularly helpful when the generation process is fraught with conditionals and loops.
- rest-client - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
- has_scope - Map incoming controller parameters to named scopes in your resources.
- Documentation
- Grape Swagger - Autogenerate documentation on Grape API.
- Grape Swagger UI - Display documentation that is generated using Grape Swagger.
- apiary - Work together to quickly design, prototype, document and test APIs.
- apiblueprint - API Documentation with powerful tooling.
Email
File Uploading
- Carrierwave - Carrierwave is a classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
- carrierwave_backgrounder - Offload CarrierWave's image processing and storage to a background process using Delayed Job, Resque, Sidekiq, Qu, Queue Classic or Girl Friday.
- CarrierWave Crop - Carrierwave extension to crop uploaded images using Jcrop plugin with preview.
- CarrierWave ImageOptimizer - This gem allows you to simply optimize CarrierWave images via jpegoptim or optipng using the image_optimizer gem.
- remotipart - Rails jQuery file uploads via standard Rails "remote: true" forms.
- MiniMagick - MiniMagick is a ruby wrapper for ImageMagick or GraphicsMagick command line.
- fog - Fog is the Ruby cloud services library, top to bottom.
- refile - Refile is a modern file upload library for Ruby applications. It is simple, yet powerful.
- Paperclip - Easy file attachment management for ActiveRecord.
- Dragonfly - Dragonfly is for on-the-fly file processing - suitable for images or other attachments
- shrine -File Attachment toolkit for Ruby applications
Searching
- ransack - Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application.
- elasticsearch-rails - Elasticsearch integrations for ActiveModel/Record and Ruby on Rails.
- Chewy - High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.
- pg_search - pg_search builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
- sunspot - Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. Sunspot is built on top of the RSolr library, which provides a low-level interface for Solr interaction; Sunspot provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects and searching for them.
- searchkick - Intelligent search made easy with Rails and Elasticsearch.
Scheduled/Recurrence Jobs
- Whenever - Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs.
- Resque - Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.
- Rufus-Scheduler - Rufus-scheduler is a Ruby gem for scheduling pieces of code (jobs). It understands running a job AT a certain time, IN a certain time, EVERY x time or simply via a CRON statement.
- Delayed Job - Database based asynchronous priority queue system.
- [Sidekiq](https://github.com/mperham/