7/08/2007

ruby facets

老實講,ruby 有一個地方真討厭,那就是每次都把我想做的東西做完了。有了 ruby, 我不覺得還有需要再自己弄一個程式語言,做得比我想像中的還好。唯一的缺點大概只有 lib 還不夠多,但有了 facets 的話,那也真的是差不多了。
http://facets.rubyforge.org/
該有的幾乎都有了,差的只剩下一些小東西。如果早點發現這東西,大概就不會想弄 ludy 了吧。

不過想用 facets 有點麻煩,例如我想用 Array#shuffle, 就必須
require 'rubygems'
require 'facets'
require 'array/shuffle'
這麻煩到爆炸了吧!!不過有個好東西:

require 'rubygems'
require 'facets/automatic'

接下來,就放心使用 Array#shuffle 吧!因為 automatic 會自動幫你 require... 我沒去看他的實做,但我猜是建 table 吧。有一個小缺點,例如你想這樣做:

[1,2,3].shuffle.map &:to_s

很不幸,這樣會失敗。shuffle 可以正常自動 require, 但是 Symbol#to_proc 不能藉由這個方法自動 require. 如果你寫:

[1,2,3].shuffle.map &:to_s.to_proc

這樣是 ok 的,automatic 可以自動 require 該 require 的東西。問題大概出在,&:to_s 是 implicit call, automatic 偵測不到。所以第一次使用,還是必須明確說明需要用到 Symbol#to_proc, 接下來就可以快樂地使用

[1,2,3].shuffle.map &:to_s

了。或是前面自己手動 require:

require 'rubygems'
require 'facets'
require 'facets/automatic'

第二行的 require 可以讓你使用 Symbol#to_proc, 所以就可以直接寫:

[1,2,3].shuffle.map &:to_s

快去安裝 facets 吧!!
gem install facets
另一個 ruby web framework nitro 0.41.0 也有用到 facets !! 雖然是用 1.4.5 版的,而現在最新的 facets 是 1.8.54(以 2007.07.08 為準的最新版本)有機會也可以試試 nitro
gem install nitro
官方網站是:
http://www.nitroproject.org/
缺點非常明確!幾乎沒有文件 XD 我很少看到一個東西的文件可以少到這樣。

不多說了,我現在頭痛就算了,眼睛也很痛。

沒有留言: