常见gems:
Devise
用于快速构建用户功能,如:注册,登陆,个人设置,找回密码
oauth
OmniAuth
如果你需要在项目中实现三方平台(如: Twitter, Facebook, 新浪微博, 腾讯 QQ)账号登陆的支
持,那你需要用上它。
will_paginate 和 Kaminari
分页控件,几乎所有 Rails App 都在用, 其中 will_paginate 比较老, 应用案例较多, kaminari
更新, 性能和兼容性更好
Paperclip 和 Carrierwave
这两个都是上传组件, Paperclip 是老牌产品了,也是几乎绝大多数项目都有在用它,它可以帮你
处理上传图片,裁减,定义不同的图片尺寸,几乎很完美。而 Carrierwave 是后起之秀,功能和
Paperclip差不多,但它还可以管理除图片之外的东西,而且灵活性更高( ruby-china
就是用它)。 对比: Paperclip 官方只支持 ActiveRecord 但相对稳定, 而 Carrierwave
比较灵活支持更多的 orm, 比如 mongoid
WiceGrid
表格控件,针对 ActiveRecord,超级强大,支持任意字段排序,过滤,具体看它的 Demo.
CanCan
一些应用中会用到为不同用户设定不同功能的权限,你可以试试 Cancan 这个 gem 他可以帮你制定
一套完善的方案,Railscasts 上面还有个使用介绍,可以看一下。
Nokogiri
采集数据时我们需要解析复杂的 HTML 结构,从中获得需要的数据,Nokogiri 可以帮助我们完美的
处理不同网页上面不同的 HTML 结构,并且有很好的编码处理能力,用它你不用担心页面是 GB2312
还是 GBK 还是 UTF-8,它都能很好的处理,解析结构可以用类似 jQuery 的 CSS Selector 的方
式查找,很是方便。曾经用过 Ruby 的好几个类似插件,最终发现 Nokogiri 才是最好的。
Whenever
Linux 里面有 Cron 可以帮助我们定期执行一些任务,但是 Cron 手动写起来很是麻烦,尤其是前
面时间周期的定义, Whenever 可以帮助我们用更人性化的方式编写 Cron 任务,具体参见
Railscasts 上面关于 Whenever 的介绍。
Resque 和 Delayed_job
有时候一些任务的执行会很慢,而这些任务我们并不要求需要马上返回结果 (比如:发送邮件,生成
图片缩略图),那我们可以选择将这些任务放到后台执行,以便于页面不会长时间等待执行。Resque
和 delayed_job 可以帮助我们很容易的搞定这件事情。两者区别在于 Resque 可以有不同的队列,
而 Delayed_job 只有一个,但它可以设定优先级。此外 Delayed_job 除了支持 ActiveRecord,
还支持其它 ORM(具体参见 这里)。Delayed_job 使用更加简单。如何选择,这个就要看使用场景
了,Resque 上面对比介绍说,如果你需要有大量的任务需要放到队列里面执行,并且不要求优先级
,那你就用它吧。DelayedJob不适合处理大量的任务, 瓶颈是基于数据库的, 也不支持队列. 操作
上比 Resque 要方便. 而 Resque 是基于 redis 的, 使得生成任务比较迅速, 性能上比
DelayedJob 要好. 唯一的缺点就是不支持定时任务、但是装个 resque-scheduler 可以弥补这一
点. 而且 Resque 还有 web 管理界面, 方便查看任务和追踪错误.
rails-dev-boost
随着项目越来越大,文件越来越多,我们渐渐发现在开发环境下,项目执行慢得让人无法忍受。这个
问题原因在于 Rails Development 环境没有缓存所有的类
(Model,Controller,Helper,Views...) 文件,每次刷新页面都将会重新载入,而载入过程实际上
是缓慢的,这个源于 Ruby 的性能问题,所以 rails-dev-boost 搞了缓存的机制来解决这个问题,
用它可以 10 倍提升大项目在开发环境的速度问题,不过某些项目可能不起效果,比如用了
ActiveAdmin。 用这个 Gem 在 rails3.1 下提速效果更为明显, 因为 rails3.1 开发环境默认状
态下每次请求 assets 哪怕是一张图片也要重新加载所有的程序文件.
ClientSideValidations
现在越来越多网站为了改善用户体验,使用 JavaScript 来进行客户端验证。对于程序员来说,也
因此增加多一份工作。而往往客户端的验证逻辑跟服务端的验证逻辑几乎一样,如果要另外再写一次
验证代码,实在不够 DRY,client_side_validations 正是为解决此问题要出现。
client_side_validations 会读取服务端的验证逻辑并生成对应的客户端验证逻辑(依赖 jQuery
),让你几乎不用增加任何前端代码就可实现客户验证。
lazy_high_charts
当前绘图 JS 库中 Highcharts 非常优秀,rubyist 使用这个 gem 来管理和编写需要的图。
god
Ruby 进程监控工具
thinking-sphinx
基于 Sphinx 的全文搜索组件,要搞全文搜索功能就用它。
RuCaptcha
图片验证码
rmagick
A new release 2.13.2 of RMagick is now available on github as well as rubygems.
This release will fix the installation issues due to ruby 1.9.3 and ImageMagick
6.8+. You can install it the usual way with bundle by adding to Gemfile
calendar_date_select
Calendar date picker for rails
mysql
rails3.0以下版本
mysql2
rails3.0以上版本
capistrano
Capistrano是Rails应用程序开发更加从容。它还是一个用来和远程服务器交互的聪明的framework
。事实上我已经备份了用Capistrano写的代码,作为Rake/Net::SSH或者shell代码之外的另一个选
择。远程部署工具
thin
Thin使用EventMachine,Rack和Mongrel来创建一个快速的web server。我用它来做Rails的本地开
发,它比mongrel稍快。要在我的Rails程序中使用它,只需要在我的程序目录下输入thin start就
行了。当时我的thin和IE cookies之间有点儿冲突,要记得如果你也遇到同样的问题,你的程序可
能有麻烦。(说明:这个问题在thin 0.6.1和Rails 2环境下好像修正了。)
FriendlyId
具有代表性的是,资源URL是通过主键来标识,主键通常是它们的数据库ID。但是,这可能造成阅读
的不友好。FriendlyId可以简单地转换你的URL,把它变得更友好,更易于记忆。这样,在你的web
应用中,基本上就很少改动你的代码了。
Sidekiq
当使用Ruby on Rails的时候,后台处理工具有很多选择,但Sidekiq却是最受欢迎的一个.流行的原因
在于它的API的简洁性,同时,相对于其它工具,它的规模化更好.
memcache-client
A Ruby library for accessing memcached.
mongoid
Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written in Ruby.
rspec
BDD for Ruby
jquery-rails
Rails默认的javascript框架jQuery
factory_girl_rails
Factory Girl可能是ROR测试中最常用到的数据工厂,没有它也只能手工写Fixture了。不解释了,
它太常用了。
# spec/factories/user.rb
FactoryGirl.define do
factory :user do
first_name "Andy"
last_name "Lindeman"
end
end
# spec/models/user_spec.rb
require "spec_helper"
describe User do
it "orders by last name" do
lindeman = create(:user)
chelimsky = create(:user, first_name: "David", last_name: "Chelimsky")
expect(User.ordered_by_last_name).to eq([chelimsky, lindeman])
end
end
simple_form
SimpleForm 在用法上与 Formtastic 类似,同样很好的支持了I18n、表间关联、嵌套表单和表单验
证等常用的功能。SimpleForm 从 2.0 开始,在可定制性上有质的突破(Twitter Bootstrap 在里
边起了很关键的作用),现在的它更像是一个 Form Builder 框架,可以很方便的对它进行设置和扩
展。
ActiveAdmin
这是一个相当不错的管理界面应用gem, 基本不需要做什么需求就能上项目了。从RubyGems的百万级
下载量也可以得知其受欢迎的程度了。感觉上是有点仿 Wordpress 的 Dashboard。
pundit
Minimal authorization using object oriented design.
核心工具栈
·RVM/rbenv
·Omniauth
·TestUnit(minitest), RSpec, Jasmini,Capybara
·Bootstrap, purecss
·Slim/haml
·MySQL/PostgreSQL/Mongodb
常见规划策略
·按业务功能拆分
·用户信息,照片,日志
·应用1:管理界面,元数据维护,支持
·应用2:系统状态,系统监控,部署
·应用3:大数据分析,预测,模型
数据/服务重用
·Cookie
·共享数据库
·jsonp
·CAS:单点登录
·JSON API
·小团队,注重交流
·限制系统的规模(代码行数)
·在恰当的时候对系统进行规划和拆分
·通过Gem进行功能重用
·通过API进行数据重用
·通过消息服务进行系统间主动通信
RabbitMQ
发布/订阅和点对点异步中间件
EventMachine.run do
connection.AMQP.connect(:host=>'127.0.0.1')
channel=AMQP::Channel.new(connection)
queue=channel.queue("amqpgem.examples.hello_world",:auto_delete=>true)
exchange=channel.default_exchange
queue.subscribe do |payload|
puts "Received a message: #{payload}. Disconnecting..."
connection.close {
EventMachine.stop{exit}
}
end
exchange.publish "Hello, world!",:routing_key => queue.name
end
Ruby框架、类库和资源集合。启发自: awesome-php & awesome-python.
- Awesome Ruby
- Admin Panels
- Anti-spam
- Asset Management
- Audio
- Authentication and OAuth
- Build Tools
- Caching
- Cloud Services
- CMS
- Code Analysis and Linter
- Command-line Tools
- Configuration
- CSS and Styling
- Data Validation
- Data Visualization
- Database Drivers
- Date and Time
- Debugging Tools
- DevOps Tools
- Distribution
- Documentation
- Downloader
- E-Commerce & Online Paying
- Environment Management
- File Uploading
- Feature Flipping
- Foreign Function Interface
- Forms
- Game Development
- Geolocation
- GUI
- High Performance
- HTML/XML/CSS Manipulation
- HTTP
- Imagery
- Internationalization
- Logging
- Machine Learning
- MapReduce
- Natural Language Processing
- Networking
- ORM
- Package Management
- Presentation Tools
- Processes and Threads
- Push Notification
- Queue
- Spreadsheets
- RESTful API
- Science and Data Analysis
- Search
- Site Monitoring
- Starter Apps
- Tagging
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Content Extracting
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Miscellaneous
- Resources
- Other Awesome Lists
- Contributing
Admin Panels
Libraries for administrative interfaces.
- active_admin The administration framework for Ruby on Rails applications
- rails_admin A Rails engine that provides an easy-to-use interface for managing your data
Anti-spam
Libraries for fighting spam.
- RubySpamAssassin Kills Spam Dead. Perhaps before it's sent!
Asset Management
Tools for managing, compressing and minifying website assets.
- sprockets Rack-based asset packaging system
- rails-assets is the frictionless proxy between Bundler and Bower
Audio
- seal A C library (with Ruby binding) for 3D audio rendering
Authentication and OAuth
Libraries for implementing authentications schemes.
- Devise - Devise is a flexible authentication solution for Rails based on Warden
- Omniauth - OmniAuth is a flexible authentication system utilizing Rack middleware
- Warden - General Rack Authentication Framework
- AuthLogic - A simple ruby authentication solution
- Sorcery - Magical authentication for Rails 3 & 4
- CanCanCan Authorization gem for Rails (continued version of CanCan from ryanb)
- pundit - Minimal authorization using object oriented design.
- authority - ORM neutral authorization.
- doorkeeper An OAuth 2 provider for Rails
Build Tools
Compile software from source code.
- teapot A decentralised build tool for managing complex cross-platform projects
Caching
Libraries for caching data.
- rack-cache HTTP Caching for Ruby Web Apps
- Dalli - a high performance pure Ruby client for accessing memcached servers.
Cloud Services
- fog The Ruby cloud services library
- aws-sdk-ruby The official AWS SDK for Ruby
CMS
Content management systems
- Refinery An extendable Ruby on Rails CMS that supports Rails 3.2 and 4
- Comfortable Mexican Sofa A powerful Rails 4 CMS Engine
- Browser Humane Content Management for Rails
- Locomotive a brand new CMS system with super sexy UI and cool features
- Radiant A no-fluff, open source content management system
- Nesta A lightweight CMS, implemented in Sinatra
- alchemy_cms the most powerful, user friendly and flexible Rails CMS
- weby Newbie CMS in Ruby on Rails
Code Analysis and Linter
Libraries and tools for analysing, parsing and manipulation codebases.
- Rubocop - A Ruby static code analyzer, based on the community Ruby style guide.
- ruby-lint - ruby-lint is a static code analysis tool for Ruby
Command-line Tools
Libraries for building command-line application.
- Commander - The complete solution for Ruby command-line executables
- Thor - Thor is a toolkit for building powerful command-line interfaces
Configuration
Libraries for storing configuration options.
CSS and Styling
- sass A CSS preproccessor
- sass-rails Rails stylesheet engine for Sass
- less-rails The dynamic stylesheet language for the Rails
- compass A a Stylesheet Authoring Environment
- bootstrap-sass Official Sass port of Bootstrap
- foundation-rails Foundation for Rails
- bootswatch-rails Bootswatches converted to SCSS ready to use in Rails
- bourbon A lightweight mixin library for Sass
Data Validation
Libraries for validating data. Used for forms in many cases.
- kangal - Extended validation gem for email, subdomain, credit card, tax number etc
- bin_checker - BIN validator for Turkish Banks
Data Visualization
Libraries for visualizing data.
- prosperity The easiest way to graph data from your Rails models
Database Drivers
Libraties for connecting and operating databases.
-
Relational Databases
- ruby-pg Ruby interface to the PostgreSQL >= 8.4
- mysql2 A modern, simple and very fast Mysql library for Ruby
- sqlite3-ruby Ruby bindings for the SQLite3 embedded database
-
NoSQL Databases
Date and Time
Libraries for working with dates and times.
- stamp Date and time formatting for humans
Debugging Tools
Libraries for debugging and developing.
DevOps Tools
Software and libraries for DevOps.
- Puppet - Server automation framework and application
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
- Vagrant - Vagrant is a tool for building and distributing development environments.
- Capistrano - Remote multi-server automation tool
- Mina Really fast deployer and server automation tool
Distribution
Libraries to create packaged executables for release distribution.
- fpm Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
Documentation
Libraries for generating project documentation.
Downloader
Libraries for downloading.
E-Commerce & Online Paying
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Spree - A complete open source e-commerce solution for Ruby on Rails.
- PayPal Merchant SDK - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs.
Libraries for sending and parsing email.
Environment Management
Libraries for Ruby version and environment management.
- chruby - Changes the current Ruby
- chgems - Chroot for RubyGems
- rvm - Ruby Version Manager
- rbenv - Groom your app’s Ruby environment
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
- ruby-build - Compile and install Ruby
Error Handling
Libraries for exception and error handling.
- Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application
- Errbit - The open source, self-hosted error catcher
- Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)
- Better Errors - Better error page for Rack apps
File Uploading
Libraries for handling file uploads.
- paperclip Easy file attachment management for ActiveRecord
- dragonfly On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more
- carrierwave Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
Feature flipping
Libaries for flipping features
- helioth Manage feature flipping and rollout
- flipper feature flipping for ANYTHING
- flip Flip lets you declare and manage feature flags, backed by cookies (private testing) and database (site-wide)
- rollout Feature flippers.
Foreign Function Interface
Libraries for providing foreign function interface.
Forms
Libraries for working with forms.
- simple_form Forms made easy for Rails
- formtastic A Rails form builder plugin with semantically rich and accessible markup
Game Development
Awesome game development libraries.
- Gosu - A 2D game development library for the Ruby and C++ programming languages
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- geocoder Complete Ruby geocoding solution
- Geokit - Geokit gem provides geocoding and distance/heading calculations.
Git Tools
Libraries for working with Git VCS
- katip - Change logger for Git initialized projects
GUI
Libraries for working with graphical user interface applications.
High Performance
Libraries for making Ruby faster.
- EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
- Celluloid - Actor-based concurrent object framework for Ruby
HTML/XML/CSS Manipulation
Libraries for working with HTML, XML & CSS.
- Nokogiri
- loofah A general library for manipulating and transforming HTML/XML documents and fragments
HTTP
Libraries for working with HTTP.
- httparty Makes http fun again!
- faraday Simple, but flexible HTTP client library, with support for multiple backends.
- http A simple Ruby DSL for making HTTP requests
- excon Usable, fast, simple HTTP(S) 1.1 for Ruby
- nestful Simple Ruby HTTP/REST client with a sane API
Imagery
Libraries for manipulating images.
- rmagick An interface to the ImageMagick and GraphicsMagick image processing libraries
- minimagick Minified version of rmagick
- chunky_png Read/write access to PNG images in pure Ruby
- image_optim Optimize images using multiple utilities
- magickly image manipulation as a (plugin-able) service
Internationalization
Libraries for woking with i18n.
- i18n - Basic internationalization(i18n) library for Ruby
- globalize Rails I18n de-facto standard library for ActiveRecord model/data translation
- i18n-tasks Manage translations in ruby applications with the awesome power of static analysis
Logging
Libraries for generating and working with log files.
- Logstash Logstash is a tool for managing events and logs.
Machine Learning
Libraries for 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
MapReduce
Framworks and libraries for MapReduce.
Natural Language Processing
Libraries for working with human languages.
- Treat - Treat is a toolkit for natural language processing and computational linguistics in Ruby
Networking
Libraries for network programming.
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
-
Relational Databases
- ActiveRecord - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
- DataMapper - DataMapper is an Object Relational Mapper written in Ruby. The goal is to create an ORM which is fast, thread-safe and feature rich.
- Sequel - The Database Toolkit for Ruby
-
NoSQL Databases
Package Management
Libraries for package and dependency management.
- RubyGems - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries
- Bundler - Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed
- Homebrew - Homebrew installs the stuff you need that Apple didn’t
- Homebrew Cask - Cask provides a friendly homebrew-style CLI workflow for the administration of Mac applications distributed as binaries
Pagination
- kaminari A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
- will_paginate Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more
- order_query Keyset pagination to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll.
PDF Processing
- wicked_pdf PDF generator (from HTML) plugin for Ruby on Rails
- pdfkit HTML+CSS to PDF using wkhtmltopdf
- prawn Fast, Nimble PDF Writer for Ruby
Presentation Tools
Processes and Threads
Libraries for woking with processes or threads
- Parallel - Ruby parallel processing made simple and fast
Profiling
- bullet - help to kill N+1 queries and unused eager loading
Push Notification
- Rpush - The push notification service for Ruby.
- apn_sender - Background worker to send Apple Push Notifications over a persistent TCP socket.
- Houston - A simple gem for sending Apple Push Notifications.
Queue
Libraries for working with event and task queues.
- Resque A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
- Delayed::Job — Database backed asynchronous priority queue.
- Qu A Ruby library for queuing and processing background jobs.
- Sidekiq Simple, efficient background processing for Ruby
RESTful API
Libraries for developing RESTful APIs.
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
- Rails::API - Rails for API only applications
- jbuilder - Create JSON structures via a Builder-style DSL
- rabl - General Ruby templating with json, bson, xml, plist and msgpack support
- active_model_serializers - ActiveModel::Serializer implementation and Rails hooks
- oat - Adapters-based API serializers with Hypermedia support for Ruby apps (HAL, Siren, JSONAPI).
Spreadsheets
Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files
- spreadsheet - The Spreadsheet Library is designed to read and write Spreadsheet Documents.
- axlsx - Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents.
- axlsx_rails - Axlsx_Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files.
- roo - Roo implements read access for all spreadsheet types and read/write access for Google spreadsheets.
- google-spreadsheet-ruby - This is a library to read/write Google Spreadsheet.
- rubyXL - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents
- Odf-report - Generates ODF files, given a template (.odt) and data, replacing tags
- simple_xlsx_writer - Just as the name says, simple writter for Office 2007+ Excel files
- remote_table - Open local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and Google Docs.
- acts_as_xlsx - acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet.
- activeadmin-axlsx - This gem uses axlsx to provide excel/xlsx downloads for resources in Active Admin.
- to_spreadsheet - Render XLSX from Rails using existing views
- write_xlsx - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
- excel_rails - Allows you to program spreadsheets using .rxls views
- sheets - Work with spreadsheets easily in a native ruby format.
- workbook - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files...
- Spreadsheet report - Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet.
- oxcelix - A fast Excel 2007/2010 (.xlsx) file parser that returns a collection of Matrix objects
- wrap_excel - WrapExcel is to wrap the win32ole, and easy to use Excel operations with ruby. Detailed description please see the README.
- write_xlsx_rails - xlsx renderer for Rails base on write_xlsx gem
Scheduling
- whenever Cron jobs in Ruby
- resque-scheduler A light-weight job scheduling system built on top of resque
- rufus-scheduler Scheduler for Ruby
- Clockwork Clockwork is a cron replacement. It runs as a lightweight, long-running Ruby process which sits alongside your web processes (Mongrel/Thin) and your worker processes (DJ/Resque/Minion/Stalker) to schedule recurring work at particular times or dates.
Science and Data Analysis
Libraries for scientific computing and data analyzing.
Search
Libraries and software for indexing and performing search queries on data.
- Thinking Sphinx - Sphinx plugin for ActiveRecord/Rails
- elasticsearch-ruby - Ruby integrations for Elasticsearch
- Searchkick - Intelligent search made easy
- PgSearch - PostgreSQL's full text search
- Rroonga - The Ruby bindings of Groonga
- Sunspot - Solr-powered search for Ruby objects
Site Monitoring
Libs for analytics, monitoring
- rack-google-analytics Simple Rack middleware for implementing google analytics tracking
- DataDog A monitoring service for IT, operations and development teams
- Keen IO Build analytics features directly into your Ruby apps
Static Page Generation
Starter Apps
App templates for creating apps quickly
- suspenders A Rails template with our standard defaults, ready to deploy to Heroku
- ruby2-rails4-bootstrap-heroku A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku
- rails-bootstrap Rails 4.1 starter app with the Bootstrap front-end framework
- rails4-starterkit Rails 4.1 starter app with production ready performance, security, and authentication
- cybele - Rails 4.x template with responder, simple form, haml, exception notification, etc ...
Text Processing
Libraries for parsing and manipulating texts.
-
General
-
Specific Formats
-
Parser
- Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)
Tagging
Libraries for tagging items.
- acts-as-taggable-on - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
Template Engine
Libraries and tools for templating and lexing.
- Slim A templating lang that reduce the syntax to the essential parts without becoming cryptic.
- slim-rails Rails port of Slim lang
- Haml HTML Abstraction Markup Language - A Markup Haiku
- haml-rails Rails port of Haml lang
- Tilt
- Liquid
Testing
Libraries for testing codebases and generating test data.
- Testing Frameworks
- RSpec - BDD for Ruby
- MiniTest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
- [Cucumber]
- Cucumber Github - Cucumber is a tool that executes plain-text functional descriptions as automated tests
- Cucumber Site - Behaviour Driven Development with elegacy and joy
- Spinach - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library's acceptance criteria.
- Rubytest - Rubytest is a testing metaframework usedful for create highly customize test suites or building whole new test frameworks.
- shoulda-matchers - Collection of testing matchers extracted from Shoulda
- capybara - Acceptance test framework for web applications
- Mock
- RSpec-mocks - RSpec's 'test double' framework, with support for stubbing and mocking
- Mocha - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
- FlexMock - Flexible mocking for Ruby testing
- Fake Data
- Code Coverage
- simplecov Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage
-
Load Testing
-
Error Handler
Third-party APIs
Libraries for accessing third party APIs.
- koala A lightweight, flexible library for Facebook
- fb_graph A full-stack Facebook Graph API wrapper
- twitter A Ruby interface to the Twitter API
- tweetstream A simple library for consuming Twitter's Streaming API
- gitlab Ruby wrapper and CLI for the GitLab API
- octokit.rb Ruby toolkit for the GitHub API
- instagram The official gem for the Instagram API
- linkedin Ruby wrapper for the LinkedIn API
- twilio-ruby A Ruby gem for communicating with the Twilio API and generating TwiML
- viewpoint-spws A Microsoft Sharepoint Web Services library for Ruby.
- youtube_it An object-oriented Ruby wrapper for the YouTube GData API
- flickraw Flickraw is a library to access flickr api
- f00px Official 500px api ruby gem
URL Manipulation
Libraries for parsing URLs.
Video
Libraries for manipulating video and GIFs.
- streamio-ffmpeg Simple yet powerful ruby ffmpeg wrapper for reading metadata and transcoding movies
Web Content Extracting
Libraries for extracting web contents.
Web Crawling
Libraries for scraping websites.
- upton A batteries-included framework for easy web-scraping
- metainspector
Web Frameworks
Web development frameworks.
- Ruby On Rails - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
- Sinatra - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
- Padrino - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
- Cramp - Cramp is a fully asynchronous real-time web application framework in Ruby
- Lotus - A newborn complete Ruby web framework that is simple, fast and lightweight.
- Cuba - Cuba is a microframework for web development originally inspired by Rum, a tiny but powerful mapper for Rack applications.
- Pakyow - Pakyow is an open-source framework for the modern web. Build working software faster with a development process that remains friendly to both designers and developers. It's built for getting along.
Web Servers
App server interface
- puma A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
- thin A thin and fast web server
- trinidad Run Rails or Rack applications within an embedded Apache Tomcat container.
- unicorn An HTTP server for Rack applications designed to only serve fast clients.
- passenger A modern web server and application server for Ruby, Python and Node.js.
- pow Pow treats files and directories as ruby objects giving you more power and flexibility.
- goliath is a non-blocking Ruby web server framework.
WebSocket
Libraries for woking with WebSocket.
- Faye - Simple pub/sub messaging for the web
- websocket-rails - Plug and play websocket support for ruby on rails.
Miscellaneous
Useful libraries or tools that don't fit in the categories above.
- packetfu A mid-level packet manipulation library for Ruby.
- chatterbot A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
- sneakers A fast background processing framework for Ruby and RabbitMQ
- ransack Object-based searching.
- cinch The IRC Bot Building Framework
- pry An IRB alternative and runtime developer console
- friendly_id Slugging and permalink plugins for ActiveRecord
- backup An elegant DSL in Ruby for performing backups on UNIX-like systems
- kss Documenting CSS and generating styleguides
- AASM - A library for adding finite state machines to Ruby classes
- JsonCompare - Returns the difference between two JSON files
- blankable - Adds blank slates to index view in Rails
- tcmb_currency - T.C.M.B. currencies for Money Gem
- enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid support
- lol_dba - 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.
- annotate-models - Annotate ActiveRecord models
- fast_attributes - FastAttributes adds attributes with their types to the class
Editor Plugins
Plugins for various editors.
Resources
Where to discover things (libraries, news e.g) about Ruby.
- The Ruby Toolbox
- RubyGems
- RubyDaily - Community driven news
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles.
- Ruby5 - The latest news in the Ruby and Rails community
- RubyFlow - Ruby Programming Community Link Blog
- GemBundle - A place to discover new Ruby Gems