大貓共和國

Meow

Hirb-unicode: 解決hirb中全形文字排列的問題

hirb是可以改變irb資料輸出方式改變的gem,其最常應用的場合就是將rails中ActiveModel的資料轉為表格。但中文網站的開發者,應該常常會碰到表格排列歪掉的問題。

使用hirb前:

(真是幾乎無法閱讀)

使用hirb後:

好多了,但是表格歪掉看起來還是很討厭。

其實表格歪掉是由於hirb無法正確計算全型字元的寬度。於是我就包了hirb-unicode這個plugin,以解決這個問題。使用hirb-unicode後:

安裝hirb-unicode

在shell下執行:

$ gem i hirb-unicode

使用hirb-unicode

如果是在irb中使用

gem 'hirb-unicode'
require 'hirb-unicode'

即可自動載入hirb及hirb-unicode,並自動修正unicode排列的問題。

若在bundler的環境下使用(如Rails 3),請在Gemfile中加入

gem 'hirb-unicode'

以便載入gem。(或者用RichRC載入也可以喔)

然後在可以在.irbrc中或直接在irb進行require的動作:

require 'hirb-unicode'

Misc

其實hirb-unicode的源碼不到30行,利用unicode-display_width gem計算長度,再包裝一下切字串的method,其實一下就做完了。原本是想簡單的上個patch到hirb,但作者希望不要增加hirb的dependency,想要將這個功能包成另外的plugin,於是花了很多天往返討論。

Anyway,終於把這個功能包出去了。Happy coding!!

Comments