Rails用のgemを作成する手順 (Rails 4.0以降)


railsで使用されることを前提としたgemの開発手順です。いつもコマンドとかオプションを忘れてしまうので、備忘録として記述しておきます。

ディレクトリ作成

まずは rails pluginコマンドでgem開発用ディレクトリを作成します。

--skip-bundleがないと、 bundle installが走ってしまいます。パス指定せずにインストールすると、グローバル環境を壊してしまう可能性があるので、各開発ディレクトリにインストールしてます。

あとは直下の プラグイン名.gemspecファイルを編集して開発を始められます。

テスト用railsアプリ

testディレクトリ以下にdummyというディレクトリが作成されています。通常のrailsアプリなので、こいつにプラグインgemを読み込んでテストすることになります。

このテスト用アプリ(dummy)は、以下のようにして起動することができます。

プラグインgemのJavascriptを読み込む

普通に読み込むことができます。例えば プラグインディレクトリ/app/assets/javascripts/hoge.jsというJavascriptを作成し、この内容をdummyに読み込みたい場合は、 test/dummy/app/assets/javascripts/application.js

てな感じで書いてやればいいです。

ActionController::Baseを拡張する

プラグインgemを読み込むだけで、他に何もしなくても、すべてのコントローラで使用できるメソッドを追加したい場合があります。そういった場合はActionController::Baseを拡張してやればいいです。

ActiveSupport.on_loadを使用すれば、モジュールの読み込み処理をフックすることができます。そのモジュールが読み込まれたタイミング、もしくは既に読み込まれていれば即時に、特定の処理を実行できます。

プラグインディレクトリ/lib/プラグイン名/engine.rbを編集します。例として、 awesome_gemという名前のgemを開発中で、 NiceModuleというナイスなモジュールをインクルードするとします。

railsのApplicationControllerはActionController::Baseを継承してますので、NiceModule内のメソッドは、すべてのコントローラで使用できるというわけです。

 

他にも思いついたら追記していきます。

関連する記事


タイ語 น่า(nâa ナー)の使い方

コメントを残す

Your email address will not be published / Required fields are marked *