Skip to content

Instantly share code, notes, and snippets.

@CITguy
Last active February 18, 2016 23:05
Show Gist options
  • Save CITguy/a7227a0fc55b530d8927 to your computer and use it in GitHub Desktop.
Save CITguy/a7227a0fc55b530d8927 to your computer and use it in GitHub Desktop.
Tour of Ruby Gems

Tour de Gems

Items in bold are those that I have the most experience.

Must Have Gems

  • bundler - It manages your project's gem versions, so you don't have to. If you aren't using it, see me after class ಠ_ಠ

Background Jobs

  • bunny - Easy to use, feature complete Ruby client for RabbitMQ 3.3 and later versions.
  • delayed_job - Easy to set up, challenging to scale
  • resque - moderate difficulty to set up, scales well
  • sidekiq - based on resque, super simple to set up, scales well

See also RubyToolbox "Background Jobs"

CSV/Spreadsheets

  • fastercsv - Read/Write CSV data (only useful for Ruby 1.9.1 or prior) Ruby 1.9.2 replaced the csv standard library with fastercsv.
  • spreadsheet - The Spreadsheet Library is designed to read and write Spreadsheet Documents. As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported.

Database

Documentation

  • rdoc - produces HTML and command-line documentation for Ruby projects
  • yard - I'm a huge fan of yard's tagging system to provide useful metadata about my ruby code.

Exception Notification

  • airbrake - Reclaim your inbox by sending exception notifications to this hosted service (website)
  • errbit - While technically not a gem, it's worth mentioning as a FREE, self-hosted alternative to Airbrake and Honeybadger. (You'd actually use the airbrake gem to connect to it.) (website)
  • honeybadger - Make managing application errors a more pleasant experience (website)

See also RubyToolbox "Exception Notification"

HTTP Client

See also RubyToolbox "HTTP Clients"

JSON

  • jbuilder - Create JSON structures via a Builder-style DSL
  • json
  • oj - The fastest JSON parser and object serializer.

Also, see rabl in "Miscellaneous"

Server Monitoring

  • bluepill - Bluepill keeps your daemons up while taking up as little resources as possible
  • god - "An easy to configure, easy to extend monitoring framework written in Ruby." It watches over things while you sleep. (Unix systems only. god doesn't support windows) (website)
  • sensu - monitoring framework that aims to be simple, malleable, and scalable

See also RubyToolbox "Server Monitoring"

Static Site Generator

Testing

  • cucumber - Test your HTML functionality via plain english test files. (warning: some regex knowledge is useful to get the most out of this gem)
  • factory_girl - Simple DSL to define ruby object factories.
  • guard - watches for changes on files and runs commands. I mainly use it to automatically run my specs as my source code changes.
  • mocha - Mocking and stubbing library with JMock/SchMock syntax
  • rspec
  • simplecov - generates test coverage report to see what you've covered in your tests.
  • timecop - A gem providing "time travel", "time freezing", and "time acceleration" capabilities, making it simple to test time-dependent code. (See also RubyToolbox "Time Warping")
  • vcr - Used to test API interactions -- record an API call and replay it for testing purposes.

Web Frameworks

  • rails - full featured ("kitchen sink", convention over configuration) (website)
  • padrino - It fits somewhere in between rails and sinatra in regards to complexity. (I've heard of it, but haven't used it yet.) (website)
  • sinatra - minimal framework. It's up to the developer to determine how to structure and organize code. (website)

See also RubyToolbox "Web App Frameworks"

Web Servers

  • passenger - latest version codenamed "raptor"
  • puma - simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications
  • thin - a thin and fast web server
  • unicorn - 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.

See also RubyToolbox "Web Servers"

XML

  • builder - Builder provides a number of builder objects that make creating structured data simple to do.
  • gyoku - Ruby Hash to XML (less-intuitive API for attributes and collections)
  • libxml-ruby - The Libxml-Ruby project provides Ruby language bindings for the GNOME Libxml2 XML toolkit. It is free software, released under the MIT License.
  • nokogiri - 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.
  • nori - XML to Ruby Hash
  • savon - Heavy metal SOAP client
  • xml-fu - Convert Hashes to XML (more intuitive api than gyoku)

Also, see rabl in "Miscellaneous"

Miscellaneous

  • activeadmin - The administration framework for Ruby on Rails.
  • annotate - Place migration schema comments at the top of your Rails models/specs.
  • awesome_print - pretty print Ruby objects to visualize their structure
  • better_errors - local gem used to provide a better error page for Rails and other Rack applications.
  • capistrano - Useful for orchestrating manual tasks on multiple remote servers.
  • chronic - a natural language date/time parser written in pure Ruby
  • dashing - Framework that lets you build & easily layout dashboards with your own custom widgets (website, demo)
  • devise - well tested, full featured authentication system that you can plug into your Rails/Rack application.
  • dotenv - load environment variables from .env
  • draper - Draper adds an object-oriented layer of presentation logic to your Rails apps
  • faker - Generate fake data -- fake names, fake phone numbers, fake emails, fake domain names, lorem ipsum text, etc.
  • github-markdown - Convert Github-flavored markdown to HTML.
  • kaminari - a Scope & Engine based, clean, powerful, agnostic, customizable and sophisticated paginator for Rails 3+
  • liquid - Easy to use text templating engine.
  • mechanize - 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.
  • newrelic_rpm - Ruby client for interacting with the NewRelic performance management service. New Relic provides you with deep information about the performance of your web application as it runs in various environments. (website)
  • nyancat - exactly what it sounds like
  • paper_trail - Keep track of the changes on your ActiveRecord models. Undo, redo, and revert to different versions of your model data.
  • prawn - a fast, tiny, and nimble PDF generator for Ruby
  • pry - An IRB alternative and runtime developer console
  • rabl - General ruby templating with json, bson, xml and msgpack support
  • thor - toolkit for building powerful command-line interfaces (website)

Shameless Plugs

Written by CITguy

  • See xml-fu in "XML"
  • ratatouille - DSL for validating complex Hash structures
  • conpar - Firewall configuration parser. Read, parse, and tokenize configuration directives. (At present, only supports Comments and ACLs for Cisco ASA and Cisco PIX firewall configurations.)
@CITguy
Copy link
Author

CITguy commented Mar 27, 2015

  • zeus
  • git-pair
  • git-up
  • carrierwave / paperclip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment