Code quality / Review / Refactoring

Rubocop

RuboCop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community
Ruby Style Guide
https://github.com/bbatsov/rubocop
https://rubocop.readthedocs.io/en/latest/

metric_fu

Code metrics for your rails project.
A fist full of code metrics http://metricfu.github.com/metric_fu
https://github.com/metricfu/metric_fu

rack-mini-profiler

This is a nice tool used for finding bottlenecks of your applications. It does a live speed analysis of how long it took for the request to be processed and how much of that time it was doing various renderings, database queries and DOM loading. Just plug it into your Gemfile and you’ll get a small window in the upper left corner of your page, showing you all of these information. https://github.com/MiniProfiler/rack-mini-profiler
Useful links:
http://railscasts.com/episodes/368-miniprofiler?autoplay=true
https://samsaffron.com/archive/2012/07/12/miniprofiler-ruby-edition
https://miniprofiler.com/

rubycritic

It wraps around three static analysis gems - Reek (ruby code smells), Flay (code duplication detection) and Flog (ABC metrics). It creates nicely structured HTML files so you can browse through your code smells and start refactoring.

https://github.com/whitesmith/rubycritic

Better_errors

It provides cleanly formatted errors with log details in the browser just a click-away.
As per the README, make sure to check out the complementary gem “binding_of_caller“, which gives you functionality similar to Pry-Debugger (described above) – but this functionality is inside your web browser when a better_errors’ error is thrown.

https://github.com/charliesome/better_errorsv

byebug

Byebug is a Ruby 2 debugger. It’s implemented using the Ruby 2 TracePoint C API for execution control and the Debug Inspector C API for call stack navigation. The core component provides support that front-ends can build on. It provides breakpoint handling and bindings for stack frames among other things and it comes with an easy to use command line interface.

https://github.com/deivid-rodriguez/byebug

web-console

The web console allows you to create an interactive Ruby session in your browser. Those sessions are launched automatically in case of an error, but they can also be launched manually in any page. https://github.com/rails/web-console

launchy

Sometimes when your test specs are failing, the error messages just aren’t informative enough – you need to see what the test is seeing in the browser. This can be especially maddening when everything appears to be fine in the browser in the development environment, but your tests are failing. Here comes Launchy to the rescue! In Capybara 2.0.0.beta2, screenshotting has become part of the API and can be done like this:

page.save_screenshot 'screenshot.png'
Launchy.open 'screenshot.png' # or open manually

https://github.com/copiousfreetime/launchy

Code cleaning

traceroute

Traceroute is a route cleaning tool for Rails applications. It provides a simple rake task for checking which routes are mapped to non existing controller actions, and finds out which controller actions are not reachable.

https://github.com/amatsuda/traceroute

Testing Gems

rspec-rails / rspec

rspec is a meta-gem, which depends on the rspec-core, rspec-expectations and rspec-mocks gems. Each of these can be installed separately and loaded in isolation using require. Among other benefits, this allows you to use rspec-expectations, for example, in Test::Unit::TestCase if you happen to prefer that style.
https://github.com/rspec/rspec

rspec-rails is a testing framework for Rails 3.x, 4.x and 5.0.
https://github.com/rspec/rspec-rails

cucumber / cucumber-rails

Cucumber is a tool for running automated tests written in plain language. Because they’re written in plain language, they can be read by anyone on your team. Because they can be read by anyone, you can use them to help improve communication, collaboration and trust on your team.
https://github.com/cucumber/cucumber-ruby

Cucumber-Rails brings Cucumber to Rails 4.x and 5.x. For Rails 3.x support, use version 1.4.5. For Rails 2.3.x support, see the rails-2.3.x branch.
https://github.com/cucumber/cucumber-rails

factory_bot / factory_bot_rails (former factory_girl)

factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory inheritance.
https://github.com/thoughtbot/factory_bot

factory_bot_rails provides Rails integration for factory_bot.
https://github.com/thoughtbot/factory_bot_rails

Shoulda-matchers

Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that test common Rails functionality. These tests would otherwise be much longer, more complex, and error-prone.
http://matchers.shoulda.io/

Capybara

Capybara helps you test web applications by simulating how a real user would interact with your app. It is agnostic about the driver running your tests and comes with Rack::Test and Selenium support built in. WebKit is supported through an external gem.
https://github.com/teamcapybara/capybara

Database_cleaner

Database Cleaner is a set of strategies for cleaning your database in Ruby.
The original use case was to ensure a clean state during tests. Each strategy is a small amount of code but is code that is usually needed in any ruby app that is testing with a database.
https://github.com/DatabaseCleaner/database_cleaner

Simplecov

SimpleCov is a code coverage analysis tool for Ruby. It uses Ruby’s built-in Coverage library to gather code coverage data, but makes processing its results much easier by providing a clean API to filter, group, merge, format, and display those results, giving you a complete code coverage suite that can be set up with just a couple lines of code.
https://github.com/colszowka/simplecov

faker

This gem is a port of Perl’s Data::Faker library that generates fake data. It comes in very handy for taking screenshots (taking screenshots for my project, Catch the Best was the original impetus for the creation of this gem), having real-looking test data, and having your database populated with more than one or two records while you’re doing development.
https://github.com/stympy/faker

Other

foreman

Manage Procfile-based applications.
https://github.com/ddollar/foreman

#Caching

redis-rails

redis-rails provides a full set of stores (Cache, Session, HTTP Cache) for Ruby on Rails.
https://github.com/redis-store/redis-rails

Views

simple_form

https://github.com/plataformatec/simple_form

webpacker

Webpacker makes it easy to use the JavaScript pre-processor and bundler webpack 3.x.x+ to manage application-like JavaScript in Rails. It coexists with the asset pipeline, as the primary purpose for webpack is app-like JavaScript, not images, CSS, or even JavaScript Sprinkles (that all continues to live in app/assets).
However, it is possible to use Webpacker for CSS, images and fonts assets as well, in which case you may not even need the asset pipeline. This is mostly relevant when exclusively using component-based JavaScript frameworks.
https://github.com/rails/webpacker

#ActiveRecord

kaminari

https://github.com/kaminari/kaminari

ransack

Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application.
https://github.com/activerecord-hackery/ransack

API

rack-cors

Rack::Cors provides support for Cross-Origin Resource Sharing (CORS) for Rack compatible web applications.
The CORS spec allows web applications to make cross domain AJAX calls without using workarounds such as JSONP. https://github.com/cyu/rack-cors

doorkeeper

Doorkeeper is a gem that makes it easy to introduce OAuth 2 provider functionality to your Rails or Grape application.
https://github.com/doorkeeper-gem/doorkeeper

rack-attack

Rack::Attack is a rack middleware to protect your web app from bad clients. It allows safelisting, blocklisting, throttling, and tracking based on arbitrary properties of the request.
https://github.com/kickstarter/rack-attack

#Security

bcrypt

bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users’ passwords. https://github.com/codahale/bcrypt-ruby

brakeman

A security analysis tool for your Rails applications. It scans through your application and outputs a nicely formatted table of possible vulnerabilities. Security warnings are grouped according to their severity (High, Medium and Low). You can learn more about their meanings on brakeman’s list of warnings
https://github.com/presidentbeef/brakeman