内容としましては、「Rails 4.0 環境において、 haml を用いた view のある部分を helper 化したいのですが、うまくいかない」です。

%li{class: "#{current_page?(:root) ? : 'active' : ''}"}
  = link_to :root do
    = fa_icon 'home'
    ホーム
%li{class: "#{current_page?(:blogs) ? : 'active' : ''}"}
  = link_to :blogs do
    = fa_icon 'book'
    記事

li タグでリストしつつ、その配下にある a タグの path が current_page と同じだった場合は、 active という classli タグへ与えるのですが、この li タグ部分を全てヘルパーで表現したいです。

  • ヘルパーには、 path と block を与えたい(もしくは、font-awesome 用の引数と a タグの title 部分も)
  • つまり、以下のどちらかのようなイメージで使用したい

    = li_helper(:root) do
      = link_to :root do
        = fa_icon 'home'
        ホーム
    

    または

    = li_helper(:root, 'home', 'ホーム')
    

いずれも出力イメージは、 root ページで出力したとして、

%li.active
  = link_to :root do
    = fa_icon 'home'
    ホーム

となって欲しいです。

どのように helper を定義したら実現できるでしょうか。