[閒聊] 有人玩過 merb 嗎?
前幾天要做一個小東西,想說正好是試驗 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)
→
10/12 16:02, , 1F
10/12 16:02, 1F
→
10/12 16:24, , 2F
10/12 16:24, 2F
→
10/12 16:25, , 3F
10/12 16:25, 3F
→
10/12 16:26, , 4F
10/12 16:26, 4F
推
10/13 01:21, , 5F
10/13 01:21, 5F
推
10/15 23:39, , 6F
10/15 23:39, 6F
→
10/15 23:40, , 7F
10/15 23:40, 7F
→
10/15 23:41, , 8F
10/15 23:41, 8F
→
10/15 23:42, , 9F
10/15 23:42, 9F
推
10/16 00:32, , 10F
10/16 00:32, 10F
→
10/16 00:34, , 11F
10/16 00:34, 11F
→
10/16 00:36, , 12F
10/16 00:36, 12F
→
10/16 00:58, , 13F
10/16 00:58, 13F
→
10/16 01:01, , 14F
10/16 01:01, 14F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
3
14
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章