アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Common Lisp コードの方が多い gem

こんにちは、tahara です。

アクトインディ Advent Calendar 2015 の8日目の記事です。

Common Lisp コードの方が多い gem をリリースしました。 前回はたった2行でしたが、今回は200行以上あります。 ちなみに Ruby のコードは40行くらいです。

lisp-rails-view

S式で Rails のビューを書けるようになる gem です。

インストール方法

まず SBCL をインストールしてください。

sudo apt-get install sbcl

Gemfile に次を追記bundle を実行してください。

gem 'lisp-rails-view'

使い方

S式でビューを書きます。 index.html.lisp

(:div#main
 (:h3.title "title")
 (:p#foo.bar "Hello"))

これで次のように出力されます。

<div id="main">
  <h3 class="title">title</h3>
  <p id="foo" class="bar">Hello</p>
</div>

詳細はこちらを。

その他

まだいろいろ出来ないことが多いですが、なんかかS式で書ける実装にはなってるかな。

ところで、https://github.com/rails/rails/blob/master/actionview/lib/action_view/context.rb#L33 このせいで String の Array ではなく String を返さないといけないんですよね。 せっかく Rack の body は Array で ok になっているのに、パフォーマンス的にどうなんだろう? と思います。

また機会があればそのあたりも掘り下げていきたいと思います。