令人驚歎的 ruby 程式庫

來源:互聯網
上載者:User
Ruby 錦囊妙計Thor

http://asciicasts.com/episodes/242-thor

Sinatra

Sinatra 是一套微型的 Web 小架構,適合小型的 Web App 或是作為 Web services 之用。它不是 MVC,也沒有內建 ORM,它最重要的是提供了一套 Routing 路由系統。

Jekyll

Jekyll 是一個非常簡單的靜態網站產生工具,讓你可以共用 Layout、使用 Textile 或Markdown 格式等。它也非常適合拿來建立 Blog。

這份講義就是用 Jekyll 產生的。

處理檔案

Ruby 內建的 File 函式庫 http://ruby-doc.org/core/classes/File.html

處理 HTTP

請參考 HTTP client 這篇文章。

YAML

Rails 的資料庫設定檔 database.yml 是用一種叫 : YAML Ain’t Markup Language 的格式所撰寫,檔案打開來,看起來就像一般的 plain 設定檔,非常容易修改。

YAML 的設計首要目標就是要讓使用者容易看懂,可以和 script 語言搭配良好。用途有 資料序列化 data serialization、設定檔 configuration settings、log files、Internet messaging、filtering 等。網站上已知有支援的 script 語言有 Python,Ruby,Java,PHP,Perl,Javascript 等。

require ‘yaml’ps2 = YAML.load_file(‘example.yaml’)ps2.each do |it|  puts it.inspectend
JSON

Rails 內建就有 ActiveSupport JSON,用法如下:

ActiveSupport::JSON.encode( [ {:a => 1 , :b => 2 } , "c", "d" ] )=> "[{\"a\":1,\"b\":2},\"c\",\"d\"]" ActiveSupport::JSON.decode( "[{\"a\":1,\"b\":2},\"c\",\"d\"]" )=> [{"a"=>1, "b"=>2}, "c", "d"] 

Yajl-ruby 則是一套底層用C,比較快的 JSON parser。

如果要替換 Rails 內建的 JSON 函式庫,請在 config/application.rb 最下方加入:

ActiveSupport::JSON.backend = 'Yajl'
XML

Rails 內建使用 Ruby 的 XML 函式庫 Builder

Nokogiri 是一套基於 libxml2 的函式庫,效能較佳。可參考 Getting Started with Nokogiri一文介紹用法。

如果要替換 Rails 內建的 XML 函式庫,請在 config/application.rb 最下方加入:

ActiveSupport::XmlMini.backend = 'Nokogiri'
PDF

Prawn 可以產生 PDF,支援 Unicode。

PDFKit 則是另一個有趣的產生方式,透過 HTML/CSS 轉 PDF。

CSV

FasterCSV 是一套 pure Ruby 的 CSV 函式庫,也被 Ruby 1.9 納入內建。

Excelsior 則是一套底層用C實作,較快的 CSV 函式庫。

YAML, JSON, XML, CSV 等都有底層改用 C 的函式庫,適合於正式上線環境,缺點是需要編譯,在一些特殊環境可能無法運作,例如最新版的 Nokogiri 就不支援 Windows 了。而純 Ruby 實作的版本就沒有這個問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.