Eclipse による容易な Ruby 開発

RDT は Aptana RadRails となった今も Ruby 開発者にとって相変わらず強力な IDE です

developerWorks では約 3 年前に「Eclipse に Ruby Development Tools プラグインを使用する」を公開し、その記事の中で、Eclipse 用の RDT (Ruby Development Tools) プラグインの中にあるいくつかの機能を紹介しました。その時点での RDT の最新バージョンは V0.5 でした。この記事では、このツールを再度取り上げます。現在では RDT は Aptana RadRails と呼ばれ、Aptana Studio または Eclipse 用のプラグインとして入手することができます。この記事では、このプラグインの新機能のいくつかを紹介します。

Robi Sen, Freelance Writer, Department13

Robi Sen は Department13 LLC の副社長です。Department13 LLC 社は雑誌 Fortune のランキングによる上位 1000 社や政府機関を主な対象に、さまざまな情報サービスや技術サービスを提供しています。彼は大部分の時間を巨大なエンタープライズ規模のアプリケーション開発に費やしており、またエンタープライズ・アプリケーションの統合や SOA (service-oriented architecture) の話題に関して積極的な発言を行っています。



2008年 8月 12日

RDT (Ruby Development Tools) プラグインの名前と、このプラグインのコードを入手するための場所は変わりましたが、基本的な機能とライセンス条件はほとんど変わっていません。Eclipse で Ruby アプリケーションを開発するという概念を初めて学ぶ人は、まず Neal Ford による記事、「Eclipse に Ruby Development Tools プラグインを使用する」を読み、Ruby ファイルの作成方法、Ruby エディターのカスタマイズ方法、デバッガーの設定方法、また Eclipse から Ruby を実行する方法、そして Eclipse からテストを起動する方法などについて学んでください。この記事では Ford による記事を拡張し、次の項目に関して説明します。

  • コード・フォールディング— クラスおよびメソッドでコードの折り畳みが可能になります。
  • アウトライン・ビュー— アウトライン・ビューとその使い方についてより詳細に調べます。
  • RI (Ruby Interactive) ビュー— RDT のビューに Ruby のドキュメントを表示できる対話型ユーティリティーを使用します。
  • タスク・タグ— Ruby のコメントに設定可能なキーワード (TODO、FIXME など) を使ってタスクを作成します。
  • Ruby ブラウザー— RDT の新機能であり、プロジェクトの中で利用可能なすべての Ruby リソースを容易に表示したりブラウズしたりすることができます。
  • エディターの改善— 大括弧、小括弧、単一/二重引用符の自動補完により、コード・アシストを強化します。

はじめに

RDT は現在では Aptana RadRails V1.0.3 と呼ばれており、Aptana.com から入手することができます。Eclipse プラグインの新しいバージョンのダウンロード、あるいはプラグインの更新に関しては、Aptana にある RadRails についての手順に従ってください。この手順は Eclipse ユーザーにはおなじみのはずです。これまでに Eclipse のワークスペースに Aptana のプラグインをインストールしたことがない場合には、Aptana の資料「Plugging Aptana into an existing Eclipse configuration」に説明されている手順に従ってください。またインストールの際の OS 特有の問題に対する解決方法については、Aptana の RadRails のドキュメントを調べてください。


コード・フォールディング

Eclipse など、ほとんどすべての IDE (Integrated Development Environment: 統合開発環境) は、コード・フォールディングという概念をサポートしています。コード・フォールディングを利用すると、ソースコード・ファイルの一部を折り畳むことができ、その状態でそのファイルの他の部分に対する作業を行うことができます。これによって、「森を見て木を見失うことなく」1 つのウィンドウの中で大量のコードを扱うことができます。RadRails でコード・フォールディングをオン・オフするためには、Ruby パースペクティブにいることを確認し、Window > Preferences の順に選択するだけです。そうすると Preferences ウィンドウがポップアップされるはずです。左側のペインを Ruby プラグイン・オプションが表示されるまで下にスクロールし、Ruby > Editor > Folding の順に選択してオプションを展開します。すると図 1 のような表示になるはずです (訳注: 図 1 は Ruby > Ri/rdoc の順に選択したときの画面になってしまっているので、実際にはこの表示のようにはなりません)。

図 1. Eclipse パースペクティブのルック・アンド・フィールとフィーチャー・セットをカスタマイズするための Preferences ウィンドウ
Eclipse パースペクティブのルック・アンド・フィールとフィーチャー・セットをカスタマイズするための Preferences ウィンドウ

必ず Enable folding when opening a new editor をチェックし、OK をクリックします。

Eclipse に Ruby Development Tools プラグインを使用する」では、Ruby プロジェクトを作成しました。まだプロジェクトを作成していない場合には、まずプロジェクトを作成します。その記事を読むのが面倒な方のために、そのコードをリスト 1 に示します。リスト 1 に示すコードで構成される Ruby ファイルを作成します。また hr.rb という Ruby クラスも必要です。

リスト 1. hr.rb
class Employee
  def initialize(name, salary, hire_year)
  @name = name
  @salary = salary
  @hire_year = hire_year
end

  def to_s
    "Name is #(@name), salary is #(@salary), " +
    "hire year is #(@hire_year)"
  end
  
  def raise_salary_by(perc)
    @salary += (@salary * 0.10)
  end
end

class Manager < Employee 
  def initialize(name, salary, hire_year, asst)
  super(name, salary, hire_year)
  @asst = asst
end

  def to_s
    super + ",\tAssistan info: #{@asst}"
  end
  
  def raise_salary_by(perc)
    perc += 2007 - @hire_year
    super(perc)
  end
end

Eclipse の中でクラスを表示すると、図 2 のように一連のマイナス記号が表示されるはずです。これらのマイナス記号それぞれはコードが折り畳まれる場所を表しています。これらのマイナス記号をクリックすると、その場所でコードを折り畳むことができます。hr.rb の中にある Employee クラスのすべてのメソッドで、マイナス記号をクリックしてコードを折り畳んでみてください。

図 2. Ruby でのコード・フォールディングをサポートする RDT
Ruby でのコード・フォールディングをサポートする RDT

Employee クラスのすべてのメソッドの折り畳み点であるマイナス記号をクリックすると、図 3 のような表示になるはずです。

図 3. Employee クラスの中で折り畳まれたメソッド
Employee クラスの中で折り畳まれたメソッド

これを見るとわかるように、コード・フォールディングによって作業環境の管理や制御が可能になり、関心対象のコードに集中できるようになります。Preferences 画面に戻り、Ruby のコード・フォールディングの設定を見ると、最初にファイルを開く際に RDT がコメントやメソッド、あるいは内部クラスを折り畳めるオプションもあることがわかることと思います。この方法によって、大量のコードに惑わされることなく、クラスの基本的な構造を素早く知ることができます。ところが次のセクションで説明するように、コードの概要を調べるためには、もっと簡単な方法があるのです。


アウトライン・ビュー

Eclipse に Ruby Development Tools プラグインを使用する」では、Ruby のソース・ファイルの要素までナビゲートする方法の 1 つとして、アウトライン・ビューに触れました。アウトライン・ビューを使うと、クラスや内部クラス、メソッド、変数などをツリー風に表現したものを素早く表示することもできるのです。もし何らかの理由で Ruby パースペクティブにアウトライン・ビューが表示されていない場合には、Window > Show View > Outline の順に選択することで容易にアウトライン・ビューを開くことができます。するとドッキング可能な形でコードのアウトライン・ビューが開きます。hr.rb ファイルの場合、アウトライン・ビューの要素が完全に展開されると図 4 のようなものが表示されるはずです。

図 4. アウトライン・ビューに表示された、ツリーに展開して視覚化された hr.rb ファイル
アウトライン・ビューに表示された、ツリーに展開して視覚化された hr.rb ファイル

それぞれのシンボルやシンボルの色は特別な意味を持っていますが、その意味が明確な場合と明確ではない場合があります。意味が明確ではない場合、その意味についての情報を得るには、Window > Preferences の順に選択して表示されるダイアログで Ruby > Appearance > Members Sort Order の順に選択すれば簡単です。この操作はアウトライン・ビューを表示するための鍵であり、この操作によってアウトライン・ビューのシンボルの表示方法を調整したり表示順序をソートしたりすることができます (図 5)。

図 5. Members Sort Order
Members Sort Order

コードのアウトライン・ビューはコードの構造を理解する上での強力なツールです。しかし、ある関数やクラスが何を行うのかを忘れてしまった場合にはどうすればよいのでしょう。次のセクションでは、Eclipse から Ruby のドキュメントにアクセスする方法について学びます。


RI (Ruby Interactive) ビュー

信じられないほどの記憶力を持っているのでない限り、皆さんは Ruby が提供するクラスやメソッド、モジュールのいくつかを忘れてしまうことがあるはずです。Ruby はドキュメントを提供しているほかに、Ruby docs の中の情報を素早く検索、発見できる対話型のドキュメント・リーダーである、RI (Ruby Interactive) を提供しています。Eclipse で RI を使うためには、RI を利用できるように RadRails プラグインを構成する必要があり、そのためには Window > Preferences の順に選択して表示されるダイアログで Ruby > RI/rdoc と選択します。すると RDoc path と Ri path という 2 つのフィールドが表示されます。それぞれのフィールドには rdoc スクリプトと ri スクリプトへのフル・パスが指定され、もし Ruby が C ドライブにインストールされている場合には、それぞれのパスは C:\ruby\bin\rdoc と C:\ruby\bin\ri のようになります。これを下の図に示します (Mac OS X と Linux® のユーザーはパスを適切に調整する必要があります)。適切なパスを入力し、OK をクリックします。

図 6. RI ドキュメント・リーダーの設定
RI ドキュメント・リーダーの設定

この設定を行うと、Eclipse の Ruby パースペクティブの下の方に RI タブが表示されるはずです。もし何らかの理由で表示されていない場合には、Window > Show View の順に選択してから RI を選択し、RI タブの入力フィールドに Array と入力します。すると RI は検索対象と一致するものを見つけようとします。あるいは提供されている選択肢をスクロールし、その中から 1 つの項目をクリックすることもできます。Array の場合には図 7 のようなものが表示されるはずです。

図 7. RI で Array クラスを照会した場合の出力の例
RI で Array クラスを照会した場合の出力の例

RI ビューを利用することによって、ドキュメントを見るために Web ブラウザーや別のアプリケーションに切り替える必要がなく、対象の作業にフォーカスを置いたまま開発環境の中で作業を継続できるため、非常に便利です。ただし場合によると、今とりあえず解決することができない問題、あるいは対処する時間がないといった問題に直面する場合があります。多くの場合、開発者は自分達のためにコードの中にコメントを残すものですが、こうしたコメントのことを忘れてしまいがちです。次のセクションでは、後で対処する項目をマーキングしておくためのタスク・タグの使い方について調べます。


タスク・タグ

Eclipse と RadRails のプラグインの中で最も便利なビューの 1 つが Task ビューです。Task ビューは皆さん自身の ToDo リストとして、あるいはプロジェクト・ベースの ToDo リストとして使うことができ、Task ビューを使うことで ToDo、FixMe、Optimize といった項目をコードにタグ付けすることができます。独自のタスク・タグを構成するためには Window > Preference の順に選択して表示されるダイアログで Ruby > Task > Tags の順に選択します。すると図 8 のような表示になるはずです。

図 8. コードにマーキングする新しいカスタム・タグを作成できるタスク・タグ領域
コードにマーキングする新しいカスタム・タグを作成できるタスク・タグ領域

タグを使うためには、そのタグをコードに追加するだけです (例えば #ToDo: Implement give_bonus method など)。

このコメントを hr.rb ファイルの中の Employee クラスに追加し、このコメントを保存します。今度は Eclipse ビューの下の方にある Task ペインを選択するか、あるいは何らかの理由で Task ペインが表示されていない場合には Window > Show View > Task の順に選択すると、リスト 2 に示す内容が表示されるはずです。

リスト 2. タスクの表示
Completed    Priority    Description    Resource    Path    Location    Creation Time
             TODO:  Implement give_bonus method  hr.rb  RubyTest   line 7  1173676801984

独自のタスク・タグを定義できる機能は、チーム開発環境では非常に強力です。開発チームはタスク・タグによって、タグに関連する特定タイプのタスクを定義することができ、たとえそのタスクを含む特定のコードを見なくても他の開発者にはそのタスクの内容がわかるようにすることができます。こうすることによってチームはコード自体の中でコミュニケーションを行うことができ、見落としがちな E メールや他の形式でのコミュニケーションが必要なくなります。次のセクションでは、プロジェクトをナビゲートしたり、情報を迅速に見つけたりすることができる、もう 1 つのパースペクティブについて説明します。


Ruby ブラウザー

この RadRails プラグイン・リリースにはいくつかの新機能があり、その 1 つが Ruby Browsing ビューです。このビューを利用するためには、Window > Open Perspective > Ruby Browsing の順に選択します。すると図 9 のようなもの表示になるはずです。

このパースペクティブには Ruby 要素の複数のビューが含まれています。プロジェクト・ビューにはワークスペースの中のすべてのプロジェクトが表示されます。タイプ・ビューにはそのプロジェクトのすべてのクラスとタイプが表示され、またメンバー・ビューにはタイプ・ビューで選択されたクラスの特定要素が表示されます。項目をダブル・クリックすると、RadRails プラグインはその要素に関連付けられたファイルを開き、その要素に焦点を当てます。

図 9. Ruby Browsing ビューの例
Ruby Browsing ビューの例

Ruby リソース全体を素早くブラウズできると、別の面から生産性を高めることができます。次のセクションでは、他にどんなものが RadRails プラグインに追加されており、それらが Ruby コードの開発にどう役立つかを調べます。


他の新機能

Aptana RadRails プラグインには、前のバージョンのプラグインにいくつかの機能強化が追加されており、その 1 つにコード補完があります。例えば hr.rb ファイルの中の任意の場所で E と入力し、次に Ctrl+Space を押すと、RadRails プラグインのコード補完機能によって、クラスやモジュール、グローバル、メソッド、そして変数などのリストがポップアップされます。また最新バージョンの RDT では新しい項目が追加されており、その中には例えばグローバルやインスタンス変数、クラス変数を明確に強調できる機能や、ストリングなどの自動補完をオン・オフできる機能、JRuby のサポート、SQL エディター、デバッグや大括弧、中括弧などの機能改善、等々が含まれています。Aptana の RadRails Pro バージョンではさらに機能が追加されており、新しい Ruby プロファイラーのサポートも IDE の中に組みこまれています。RadRails プラグインでの新機能について詳しく知るためには、この記事の執筆時点での最新バージョンである V1.0.2 の変更ログを参照してください。

Aptana RadRails は大幅に機能強化されたことによって、それ自体が Ruby アプリケーションを開発するための本格的なツールとなっています。RadRails を他の Eclipse プラグインと組み合わせることによって、他のほとんどすべての商用製品に匹敵する機能を備えた世界クラスの IDE を実現することができます。


まとめ

この記事では、Aptana RadRails に追加された機能と改善事項のいくつかに関する概要を説明しました。ここで説明したように、RadRails プラグインは Ruby 開発者にとって強力な IDE となります。さらに良いことに、Eclipse は Ruby を容易に扱うためのツールであるばかりではなく、他の開発言語を扱うためのツールでもあります。Eclipse はどんな開発にでも使える共通のプラットフォームとなります。そのため開発者は開発言語を変えるごとに新しい IDE を学ぶ必要がなく、その言語に集中できるため、作業効率を高めることができます。


ダウンロード

内容ファイル名サイズ
Ruby classos-eclipse-rdt-rubyeclipse.hr.rb.zip1KB

参考文献

学ぶために

  • Eclipse に Ruby Development Tools プラグインを使用する」を読んでください。
  • Ruby-lang.org は Ruby に関する他の有用なサイトやドキュメントへのポータルです。
  • これまで Eclipse のワークスペースに Aptana プラグインをインストールしたことがない場合には、Aptana の資料、「Plugging Aptana into an existing Eclipse configuration」に説明されている手順に従ってください。
  • インストールの際のプラットフォーム特有の問題に対する解決方法については、Aptana の RadRails のドキュメントを調べてください。
  • Ruby on Rails は大きな影響力を持つ Web アプリケーションのフレームワークであり、Ruby をベースにしています。このサイトでは rails をダウンロードすることができ、またサンプル・アプリケーションを見ることができます。
  • Ruby-doc.org で Ruby の最新のドキュメンテーションを見てください。
  • Dave Thomas 著による『Programming Ruby, The Pragmatic Programmer's Guide, 2nd Edition』は Ruby 言語に関する独創的なガイドです。この本は非常に読みやすいスタイルで書かれており、Ruby を初めて学ぶ人が最初に購入するとよい本です。ソフトウェア・エンジニアリングに関する優れた古典として、Ruby に関心がない人にとっても読む価値があります。
  • Dave Thomas と David Heinemeier Hansson の共著による『Rails によるアジャイル Web アプリケーション開発』は、Rails に関心を持つ人ならば必ず読む必要のある本です。これは Rails による開発に関する本の決定版です。
  • Andrew Hunt と David Thomas の共著による『The Pragmatic Programmer: From Journeyman to Master』では、開発者は毎年 1 つ新しい言語を学ぶ必要があると助言しています。
  • Glenn Vanderburg はソフトウェアの知識人として、興味深い洞察や視点を提供しています。彼は Java™ 技術の真の潜在的可能性を最初に理解して世界に周知させた人の 1 人であり、Java に関する最初の上級書を執筆しています。また彼は長年にわたって強力な Ruby 支持者でもあります。
  • 『Bitter Java』や『EJBアンチパターン』で有名な Bruce Tate も Ruby を推奨しており、Java 技術から Ruby に転換してはどうかと勧めています。彼の著書の中には、どのようにすれば Java 技術者から Ruby 技術者に転換できるかを解説した本も何冊かあります。彼が執筆した developerWorks の「Secrets of lightweight development success」シリーズを読んでください。
  • Martin Fowler は、ソフトウェア・エンジニアリングの世界で最もよく知られている人の 1 人です。彼はさまざまな概念を深く理解しており、その著作の中でそれらの概念を驚くほど明晰に解説しています。彼は Ruby と Ruby によって可能となるものを支持する積極的な発言を行ってきており、ようやく世界が彼に追いつき始めたところです。彼は傑出した彼のブログの中で Ruby に関して頻繁に執筆しています。
  • developerWorks では、「Debugging Ruby programs 101」や「Automating tasks with Rake」など、Ruby に関する記事やチュートリアルを無数に提供しています。
  • Eclipse の推奨読み物リスト」を調べてみてください。
  • developerWorks には他にも Eclipse に関する資料が豊富に用意されています。
  • Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。
  • IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。
  • developerWorks podcasts では、ソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
  • developerWorks の Technical events and webcasts で最新情報を入手してください。
  • IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。
  • IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。
  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。

製品や技術を入手するために

  • Aptana.com から RadRails Eclipse プラグインの新しいバージョンをダウンロードしてください。あるいはこのサイトを利用して既存のプラグインを更新してください。
  • Rubyforge.org には、Windows に Ruby 環境をセットアップするためのプログラム、One-Click Ruby Installer が用意されています。
  • Aptana.com で Aptana RadRails Eclipse プラグインを入手してください。Eclipse プラグインの新しいバージョンのダウンロードや更新を行うためには、Aptana の RadRails に関する説明に従ってください。
  • IBM alphaWorks に用意された最新の Eclipse technology downloads を調べてください。
  • Eclipse Foundation から Eclipse Platform や他のプロジェクトをダウンロードしてください。
  • IBM 製品の試用版をダウンロードし、DB2® や Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品をお試しください。
  • 皆さんの次期オープンソース開発プロジェクトを IBM trial software で革新してください。ダウンロード、あるいは DVD で入手することができます。

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=339690
ArticleTitle=Eclipse による容易な Ruby 開発
publish-date=08122008