作者godfat (godfat 真常)
看板Ruby
標題[閒聊] 有人玩過 merb 嗎?
時間Sun Oct 12 15:46:03 2008
前幾天要做一個小東西,想說正好是試驗 merb 的好時機,
就先花了幾個小時把架構調整好。比方說把之前寫好的東西 copy 過來
繼續用,例如錯誤處理的部份,像是這樣:
if message.save
flash[:info] = Lang.tr[:ok]
else
flash[:info] = message.errors.map{ |error|
[Lang.tr[error.first], error.last].join
}.join("<br />\n")
flash[:message] = message.attributes
end
也許是應該試著用 error_message_for 啦,只是之前都寫好了,
這又是個小東西,很懶就直接 copy 過來。
還有 active_record message 的翻譯:
# encoding: utf-8
ActiveRecord::Errors.default_error_messages = {
:invalid => '格式不正確',
:empty => '沒有填寫',
:blank => '沒有填寫',
:too_long => '太長(最長 %d 個字)',
:too_short => '太短 (最短 %d 個字)',
# etc.
}
還有平常拿來 deploy 的 rake task, 把 html 從 big5 轉成 utf-8,
CRLF 轉成 LF, 拉拉雜雜一堆這樣就花了幾個小時 -_-b
實際上開始寫大概幾分鐘就寫完了。上線之後,我就開始把所有程式
翻譯到 merb 上... 大概先是花了幾個小時熟悉,正式開始寫後,
也是幾分鐘就寫完了。實際撰寫時間應該比 rails 少很多,因為,
大部份的東西都是改個名字就能跑了 @_@b
兩者的外部架構幾乎是一模一樣。我的意思是,只要你沒碰到核心的話,
兩者的用法幾乎只有名稱差異而已。而且很多命名還甚至是一樣的。
例如 params 和 session.
不過 merb 沒有 flash, 這部份只好靠自己寫 filter 來清除:
after lambda{ session[:info] = nil }, :only => :board
一開始我一直寫成:
after :board do
session[:info] = nil
end
因為 Extlib::Hook 就是這樣用的。測半天後才想到,
應該用 rails after_filter 的寫法才對 @_@b
*
總之,去掉一些 merb 的 bug 不提的話,我用起來非常順,
感覺像是進化後的 rails... 就差在 rails 的 plugin 無法移植外,
其他的東西全部都具備,甚至更多更多。
目前第一個碰到缺乏的功能,就是 pagination...
之前我都是用自己寫的 Ludy::Paginator, 但後來接別人的東西,
就順著他用 will_paginate, 發現其實還滿方便的,就繼續用。
查了一下,有個 port 在這:
http://github.com/myobie/merb_paginate
大概看了一下,寫得也滿暴力的,還 depend on will_paginate...
也有一段時間沒有更新了,我乾脆自己寫,又不是很難的東西。
所以就從 ludy 中抽出 paginator, 重新改名為 pagify 和 pager.
http://github.com/godfat/pagify
*
我應該會慢慢把之前幫 rails 寫的東西全部 port 到 merb 上。
也敢保證在 merb 上寫東西絕對會比在 rails 上寫容易好幾倍...
原本這些都是放在 ludy 裡,現在打算全部抽出來獨立做。
因為 rubyforge 分專案不方便,github 方便很多...
orm 則以 data mapper 為主,因為這個我還蠻滿意的 XD
看有沒有人有興趣參與這樣
==
對了,希望也能在 ramaze 上做一份,盡可能跨越多平台
--
生死去来、棚頭傀儡、一線断時、落落磊磊
《花鏡》-世阿弥
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
※ 編輯: godfat 來自: 220.135.28.18 (10/12 15:52)
1F:→ poga:ramaze感覺比較好懂... datamapper還是不能在xp上跑阿 Orz 10/12 16:02
2F:→ godfat:ramaze 作者做了一大堆東西 @@ 以後再慢慢細看 orz 10/12 16:24
3F:→ godfat:以後還有啥小東西我再試試看 XD dm 的話,也許會有人說: 10/12 16:25
4F:→ godfat:go to get a real OS... XD 10/12 16:26
5F:推 ihower:go merb 1.0! 10/13 01:21
8F:→ godfat:merb mailing list 上有人抱怨 0.9.9 有不少問題... 10/15 23:41
9F:→ godfat:說為了趕這 1.0, 改寫太多東西,應該需要更多時間整頓 10/15 23:42
10F:推 kenmax:sorry沒寫清楚,謝謝版大說明^^ 10/16 00:32
11F:→ kenmax:請問一個問題,裡面提到Merb in Action這本書這在寫 10/16 00:34
13F:→ kenmax:它是獨立的一個可以跑的Hello,XXX的範例了囉? 10/16 00:58
14F:→ kenmax:一開始看到..,'app/controllers',以為它是跟RoR結(融)合XD 10/16 01:01