What have you found for these years?

2007-07-08

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
我很少看到一個東西的文件可以少到這樣。

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

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0