rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
-
Upload
koichiro-sumi -
Category
Technology
-
view
75 -
download
7
Transcript of rablについてざっくりだけ調べてみた #shinjukurb 新宿rb 41th
© 2015 Actcat, Inc. 1
rablについて調べてみた
新宿 .rb 41th
© 2015 Actcat, Inc. 2
@sumyapp
Koichiro Sumi
コードレビューのための CI サービス、SideCI を運営
最近はマーケの人と化していますコードは他のメンバーが書いています
© 2015 Actcat, Inc. 3
SideCIとは
GitHub 連携の自動コードレビュー SaaSRuboCop など Lint ツールを約 20 ほど提供独自解析エンジンもこそっと提供開始中
https://github.com/integrations
© 2015 Actcat, Inc. 4
アジェンダ
rabl って何?使ったことある、使っている人いる?僕はこういうときに rabl を使いたい
© 2015 Actcat, Inc. 5
rabl
スターがすっごい沢山ついている
© 2015 Actcat, Inc. 6
What is rabl?
RABL (Ruby API Builder Language) is a Rails and Padrino ruby templating system for generating JSON, XML, MessagePack, PList and BSON. When using the ActiveRecord 'to_json' method, I find myself wanting a more expressive and powerful solution for generating APIs. This is especially true when the JSON representation is complex or doesn't match the exact schema defined within the database.オブジェクトをレスポンスする、
API 専用のテンプレートエンジン
© 2015 Actcat, Inc. 7
お題
Q. 「 rabl を使ったことが ある人はいますか?」A.A. 使っているB. 使ったことがあるC. 名前を聞いたことがあるD. 初めて聞いた
© 2015 Actcat, Inc. 8
簡単な使い方
.rabl ファイルに `object @name` を書くだけ
© 2015 Actcat, Inc. 9
詳細は READMEで
普通の view で出来ることはたいてい出来るパーシャル条件分岐による JSON への key の有無
キャッシュも Rails 機構でaction_controller.perform_caching
https://github.com/nesquena/rabl/blob/master/README.md
© 2015 Actcat, Inc. 10
Controller直レンダリングから rablへPure Rails controller Controller クラスで
JSON を組み立て、 render :json でレンダリング API の返り値は
controller が管理 View dir を見ても空
rabl Controller ではインスタンスの作成のみ、
rabl でレンダリング API の返り値は rablファイルで管理 View dir に API の値も普通の view もある
© 2015 Actcat, Inc. 11
僕はこういうときに rablを使いたい
オブジェクトを複数組み合わせたオブジェクトを API の返り値とするとき1 つの to_json だけでは解決しないとき
API を View として管理したいとき`render :json` と書くより、 users.html.slim
users.json.rabl を view の dir に置きたい to_json より非常に柔軟でシンプルなので、とりあえず使っておきたい