TOP

Ruby On Rails 常用的精品Gem匯總(一)
2017-10-10 12:07:49 】 瀏覽:7614
Tags:

首先需要注明一點,本文是原創的并不是從其它地方轉載。所有的數據是我從 GitHub 和 RubyGems 上碼下來的,數據的截取時間就是本文的發布日期。

RubyGems 的下載量可以看到在用這個 gem 的人數,所以數值很大(這里收藏的下載量至少會大于10萬級)。而在 GitHub 上的則代表關注這個gem的源碼的人數(本文收藏的至少是過 1k以上 Star 的 repository)

Nokogiri

gem 'nokogiri'

采集數據是我們需要解析復雜的 HTML 結構,從中獲得需要的數據优乐棋牌app下载,Nokogiri 可以幫助我們完美的處理不同網頁上面不同的 HTML 結構,并且有很好的編碼處理能力,用它你不用擔心頁面是 GB2312 還是 GBK 還是 UTF-8,它都很很好的處理,解析結構可以用類似 jQuery 的 CSS Selector 的方式查找,很是方便。曾經用過 Ruby 的好幾個類似插件,最終發現 Nokogiri 才是的。

Faraday

gem 'faraday', '~> 0.9.1'

Faraday 是一個HTTP的客戶端,可以提供一般化的接口和多種的適配器 (例如 Net::HTTP)。

做一些網絡服務API集成它是一個很好用的助手。

conn = Faraday.new(:url => 'http://sushi.com') do |faraday|
  faraday.request  :url_encoded             # form-encode POST params
  faraday.response :logger                  # log requests to STDOUT
  faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
end
## GET ##
response = conn.get '/nigiri/sake.json'     # GET http://sushi.com/nigiri/sake.json
response.body
conn.get '/nigiri', { :name => 'Maguro' }   # GET http://sushi.com/nigiri?name=Maguro
conn.get do |req|                           # GET http://sushi.com/search?page=2&limit=100
  req.url '/search', :page => 2
  req.params['limit'] = 100
end
## POST ##
conn.post '/nigiri', { :name => 'Maguro' }  # POST "name=maguro" to http://sushi.com/nigiri
# post payload as JSON instead of "www-form-urlencoded" encoding:
conn.post do |req|
  req.url '/nigiri'
  req.headers['Content-Type'] = 'application/json'
  req.body = '{ "name": "Unagi" }'
end
## Per-request options ##
conn.get do |req|
  req.url '/search'
  req.options.timeout = 5           # open/read timeout in seconds
  req.options.open_timeout = 2      # connection open timeout in seconds
end

RSPEC-RAILS

gem 'rspec-rails', '~> 3.4'

如果沒有用過 RSpec 都不能算是懂 Ruby 吧,respec_rails 顧名思義是將 rspec 集成至 rails 中的測試框架了:

require "spec_helper"
describe User do
  it "orders by last name" do
    lindeman = User.create!(first_name: "Andy", last_name: "Lindeman")
    chelimsky = User.create!(first_name: "David", last_name: "Chelimsky")
    expect(User.ordered_by_last_name).to eq([chelimsky, lindeman])
  end
end

Devise

gem 'devise', '~> 3.5', '>= 3.5.2'

Devise 是一個用于快速構建基本用戶功能,如:注冊,登陸,找回密碼。 同時它還集成了第三方的登入支持优乐棋牌app下载,代碼也相當簡單:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :confirmable, :recoverable, stretches: 20
end

Devise 是一個大集成包,單看看它集成了什么就能知道到大至上的功能了:

  • Database Authenticatable: 支持加密的身份驗證并能將驗證信息存儲于數據內。
  • Omniauthable: 集成 OmniAuth 實現三方平臺(如: Twitter, Facebook, 新浪微博, 騰訊 QQ)賬號登陸的支持。
  • Confirmable: 發送郵件以驗證注冊用戶的身份。
  • Recoverable: 支持密碼重置。
  • Registerable:支持注冊新用戶。
  • Rememberable: 支持自動登錄
  • Trackable: 可跟蹤用戶的登入次數,時間戳和 IP
  • Timeoutable: 支持自動用戶會話的過期
  • Validatable: 可驗證用戶的郵件的與密碼的正確性,且可定制化。
  • Lockable: 可以鎖定多次嘗試登錄失敗的用戶賬號。

如果沒有它,光想想要我們自己來碼上面的這些功能都夠浪費時間的。重點是每個項目都得用啊。

FACTORY_GIRL_RAILS

gem 'factory_girl_rails'

Factory Girl可能是ROR測試中最常用到的數據工廠,沒有它也只能手工寫Fixture了。不解釋了,它太常用了。

# spec/factories/user.rb
FactoryGirl.define do
  factory :user do
    first  
		

請關注公眾號獲取更多資料



首頁 上一頁 1 2 3 4 5 下一頁 尾頁 1/5/5
】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇scrapy 使用 下一篇Ruby On Rails 常用的精品Gem匯總