常用ruby gem

本篇文章主要分享常用ruby gem,通过本文您将了解到有关ruby,gem的相关内容,请有需要的人参考。

常见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。

文章内容就介绍到这儿,文章来自网络,请大家参考。

您可以选择一种方式赞助本站

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: