There's an echo in my head

日々のメモ。

SinatraでJbuilderを使う

RABLのDSLわからんヽ(Д´)ノ((object`ってなに…)) ってなってるので、tilt-jbuilderをforkしてSinatraで動くようにした。

sinatra-integrationというブランチを切ったので、Gemfileに次のように記載するとSinatraでもJbuilderが使えるようになる。

# Gemfile
gem "tilt-jbuilder",
  git: "git@github.com:a2ikm/tilt-jbuilder.git",
  require: "sinatra/jbuilder",
  branch: "sinatra-integration"

たとえばこんな感じ:

get "/" do
  jbuilder :foo # renders `views/foo.jbuilder`
end

get "/partial" do
  jbuildder "json.partial! :bar" # renders `views/_bar.jbuilder`
end

RABLの部分テンプレートは遅いらしいんだけどこっちはどうなんだろう。evalしまくりなので遅い気はしている。

Pull Req.を投げてみたのでマージしてもらえるといいなぁ。

参考文献

ほかにも、

などを参考にした。

Ruby難しい。

追記

マージされた。

ただ新しいバージョンがリリースされたわけではないので、今利用するには引き続きgithub上のリポジトリを指定する必要がある。

今になって思えば、gemspecでsinatraはdevelopment_dependencyに追加すべきだったなぁと思う。

追記

tilt-jbuilder 0.4.0がリリースされ、こちらに取り込まれた。

もうGemfileに:gitオプションを指定する必要はない。

サンプルをgistに書いた

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。