Controller無しでViewを表示するRailsプラグインを公開しました
プロジェクトで作っていたRails用の機能が他でも使えそうだたので、gem化して公開しました。
瓜科の植物ですね。 Rails4.1以上と書いてありますが、バージョンに依存するとこには手を付けてないので、Rails3系統でも使えると思います。
背景
デザイナとチームでRailsアプリを作っているんですが、 平行して開発していると、デザインの方が先にできていて後からヘルパーとかコントローラーの実装をする、という局面があったりします。 デザイン部分はデザイナがガーッとHTMLでコーディングし、それに対してプログラマがRailsのヘルパーなどでデータの表示部分を実装する、というフロー。
出来上がったHTMLを実際のURLでアクセスできるようにしておきたい、Railsのわからない人でもView側のコーディングをできるようにしたい、とか要望がありまして。 public以下に配置してもいいんですが、テンプレートの恩恵を受けられないので、
- テンプレートが使える
- でもrailsコマンドを使いたくない
という要件で、じゃあどうするのかと。
そこで、あくまでプロトタイピング用途として、共通のコントローラを介して複数のViewを表示できないかな、と考えました。 まずViewだけ配置しておいて、あとからコントローラを実装するときにルーティングの設定もキチッとする、って運用で。
機能
Viewsディレクトリ以下のhtml.erbを読んで、hechima_controllerに紐付けるというのが主な機能です。 表示することが目的なので、indexアクションしか受け付けません。
gem化
作った機能は他のプロジェクトでも使いたかったのでgem化してみました。 gemに切り出すのに多少苦労がありました。
ルーティングをアプリケーション内から取得するにはどうしたら?とか、 routes.rbのgetメソッドはどこに居るんだとか。 色々悩みつつググりつつ手を動かしてなんとか元のアプリケーションとgem部分を切り出せました。
テストはrspecを使うように設定はしていますが、テストコードは書いておりませんm(__)m
rubygems.orgへの公開
できたgemはrubygems.orgに登録します。 SignUpして、後は、
rake build<br />
rake release
するだけです。超簡単!
こんな簡単に自作gemが世界に公開できるとは驚きですね。
http://rubygems.org/gems/hechima
まとめ
初のRubyGems公開ということでやってやった感があります。コードにして数十行程度ですが。 RailsWayじゃない感じの機能なので、プロトタイプ用途として使ってもらえればと思います。