Ruby Advent 2008 到耶誕節有一系列的 Ruby 連載:
- Simple Blog Engine in Ruby
介紹 Scanty 這套由 Sinatra 做的 Blog 系統 - Deploying Ruby Apps with Passenger
- Hoptoad for better Exception Notification
Hoptoad 我之前有介紹過,是 ThoughtBot 出的網路服務,用來追蹤 Rails 的 exception notifications,最近也剛推出收費版支援 SSL。
- Cool as a Cucumber
Cucumber 是一套基於 Rspec 的 Acceptance Testing Framework。這種驗收測試的作法是用純文字的方式把規格文件(feature documentation)寫出來,然後用這套工具來寫一個可以執行它(parse)它的測試程式。
- Machinist for your Test Data Factory
因為 fixtures 實在不惹人喜愛,所以有些人改用工廠機制,例如 Factory Girl 這套 plugin 可以預先定義好資料形式,方便隨時建立出測試假資料。我的經驗是程式會漂亮不少,但代價是如果假資料量大的話,執行會花不少時間。
而這裡介紹的 Machinist 也是概念類似的一套實作品(算是 Factory girl 的重新發明)。
- SOA with Merb?
要做 REST calls 目前有幾種 library 可以用 Net::HTTP、RestClient、HTTParty 和 ActiveResource。其中 Net::HTTP 太基本了,而 ActiveReource 太肥不適合搭配 Merb,所以這裡推薦的是 RestClient。
- Generating (Real) Fake Content
開發網站的時候,常有要塞滿一些假資料來 Demo 的需求,這裡介紹了 Faker gem 可以產生假文字。
- A Simple Distributed Queue in Ruby
使用 DRb 用九行 Ruby code 就實作出一個 Shared Queue。
- Git it done, Rubyists
介紹 Git 跟一些 Ruby 工具,對 Git 還不太知道的朋友可以看看 Why Git is Better than X (有中文翻譯)
- Listening to Your Specs
這篇長文蠻深入的講解 RSpec 的 BDD(Behavior-Driven Development) coding style。
- Thinking out of the Box with Enumerable#inject
火力展示 Ruby Enumerable#inject 的進階用法,雖然我覺得還挺難懂的。
- Meet the Splat
介紹 Ruby splat operator (也就是asterisk *) 的用法,可以將陣列展開成參數列。
Passenger 其實不只支援 Rails,任何支援 Rack 的 web framework 都可以使用。
ruby 的 inject 就是 fold:
en.wikipedia.org/wiki/Fold_(higher-order_function)
在 functional programming 中,
差不多可以說是最基本的概念。
倒是 ruby 1.9 的 Enumerator
算是又更朝 fp 更進一步了… XD