プロジェクトで作っていたRails用の機能が他でも使えそうだたので、gem化して公開しました。

hechima

瓜科の植物ですね。 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じゃない感じの機能なので、プロトタイプ用途として使ってもらえればと思います。