令人惊叹的 ruby 程序库


Ruby 錦囊妙計

Thor

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

Sinatra

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

Jekyll

Jekyll是一個非常簡單的靜態網站產生工具,讓你可以共用 Layout、使用TextileMarkdown格式等。它也非常適合拿來建立 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.inspect
end

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 實作的版本就沒有這個問題。

优质内容筛选与推荐>>
1、深度学习in Halcon流程
2、Oracle连接方法
3、Oracle 添加外键
4、22个所见即所得在线 Web 编辑器
5、JS中应用重载


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号