Herokuで作るFacebookアプリ

第10回 Herokuコマンドを拡張しよう

この記事を読むのに必要な時間:およそ 2 分

はじめに

前回は,Facebookアプリにいいね!ボタンを付ける方法をご紹介しました。Facebookの特徴の1つである,いいね!機能をアプリに取り込む方法を学んでいただけたかと思います。今回は,Herokuのコマンドシステムをご紹介します。Herokuを利用すると必ず利用する herokuコマンドですが,そのコマンドをより便利に拡張する方法が準備されています。

Herokuコマンドpluginの仕組み

Herokuのアプリケーションの設定などを操作するのはWebの画面からでも可能ですが,基本的にコマンドラインから実行します。開発者としてはコマンドラインをよく操作することもあり,コマンドラインから操作できることのほうが手軽と感じる人も多いのではないでしょうか? Herokuのコマンドも非常に良くできており,アカウント情報を保持してくれたり,現在いるディレクトリからどのアプリを操作しようとしているのかを特定してくれたり,とても便利に使えるようになっています。

このコマンドですが, pluginという仕組みを持っており,コマンド自体を拡張することができるのです!herokuコマンドを入力していただくと,ヘルプとしてpluginという項目が表示されています。以前紹介したaddonsにも似ているのですが,pluginは別のものです。addonsはアプリケーションに機能を追加するものですが,pluginはコマンドに機能を追加するものです。このように機能を追加できる仕組みを2つも持つというのはHerokuならではで非常に面白いものだと思います。

まず,1つのプラグインをインストールしてみましょう。インストールするpluginはHerokuのサーバのアプリケーションの中でRailsのconsoleと同じことができるheroku consoleコマンドを拡張して,結果の出力に色付けするようにしてくれるプラグインです。

$ gem install wirble # プラグインの実行に wirble という gem が必要です
$ heroku plugins:install git://github.com/hone/heroku_colorize_console.git

このpluginをインストールすると下の画像のように,コマンドの出力結果に色付けが行われます。

 コマンドに色付けがされた

図 コマンドに色付けがされた

非常に簡単にコマンドを拡張できました。面白い仕組みですよね。

Herocutter

Herokuではこのpluginのカタログを提供しています。それが Herocutter というサービスです。

Herocutter
http://herocutter.heroku.com/

 Herocutter

図 Herocutter

このHerocutterは,現在Rubygems.orgとして運用されている前のサービスであるgemcutterのHeroku pluginのバージョンとして展開されています。ほぼ同じソースコードを利用しているようで非常にUIが似ています。Rubygems.orgと同様にユーザが自分で作成したpluginを自由に追加することができるようになっています。

Herocutterを利用するためには,pluginの仕組みを利用してHerocutter用のpluginをインストールします。以下のコマンドでインストールするとgitのURL全体を入力することなくHerocutterに登録されているplugin名のみでインストールできるようになります。

$ heroku plugins:install git://github.com/hone/heroku_herocutter.git

現在,Herocutterには17のpluginが登録されています。まだまだ活発になってはいないようですが,非常に面白い仕組みなので,今後Addonの仕組みと連動して活性化されていくのではないかと感じています。

おすすめplugin

現在登録されている17のpluginの中で便利に使えそうないくつかを紹介したいと思います。このpluginをインストールしてHerokuをより便利に利用してみてください。

tab_complete_console

consoleコマンドで,Tabによるコマンドの補完ができるようになります。手動で入力するよりも正確に入力できるようになりますね。

インストールは以下のコマンドで行えます。

$ heroku plugins:install tab_complete_console

heroku-accounts

Herokuを業務で利用している場合は,本番用とテスト用とプライベート用などの複数のアカウントを同じ環境で扱わないといけない場合がでてきます。その際にこちらのプラグインを利用するとそれぞれのアプリでどのアカウントで操作するのかを設定し自動的に適切なアカウントでgitの操作を行ってくれるようになります。

$ heroku plugins:install heroku-accounts

詳しい使い方は,以下のディレクトリにプラグインがインストールされてREADMEが存在するのでそちらを参考に利用してみてください。

READMEのパス ~/.heroku/plugins/heroku-accounts/README.md

switch_command

以前にも紹介しましたが,Herokuではテスト環境と本番環境の両方をHeroku上で運用することになります。その際に操作するアプリケーションはどちらなのかを指定することができますが,毎回わざわざ設定するのは非常に手間がかかります。こちらのpluginを利用すれば簡単に利用するアプリケーションを切り替えることができるようになります。

$ gem install git
$ heroku plugins:install switch_command

このようにまだまだカタログとしては少ないですが,便利なpluginが登録されています。他のプラグインを試してみて,より便利にHerokuを利用してください。

まとめ

今回は,Herokuのコマンドのpluginの仕組みを紹介しました。Herokuを利用する際にコマンドラインをより便利に利用することができるようになる仕組みで,ユーザが自由に機能を追加していけるようにしているのが,とてもHerokuらしくて面白いと感じていただけたのではないでしょうか?

次回は,マンガ共有アプリの開発を進めます。マンガに関する画像をアップロードして共有できるようにしたいと思います。Herokuではどのようにファイルアップロードを実現するのかというあたりをご紹介する予定です。

著者プロフィール

松村章弘(まつむらあきひろ,ハンドルネーム:mat_aki)

SonicGarden プログラマー。

1984年生まれ。社会人1年目からRuby on Railsのみで開発を続け現在4年目。Webサービスの企画・運営・プログラミングまですべてをこなす。世界で利用されるWebサービスを創ることを目標にしている。現在は youRoom の開発を行っている。

mat_akiの日記:http://d.hatena.ne.jp/mat_aki/

Twitter:http://twitter.com/mat_aki

コメント

コメントの記入