• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

令人惊叹的 ruby 程序库

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby的魅力:直接呼叫Win32API发布时间:2022-07-14
下一篇:
Ruby 2019年状况:快要死了吗?发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap