レベル: 初級 Robi Sen, Freelance Writer, Department13
2008年 8月 12日 developerWorks では約 3 年前に「Eclipse に Ruby Development Tools プラグインを使用する」を公開し、その記事の中で、Eclipse 用の RDT (Ruby Development Tools) プラグインの中にあるいくつかの機能を紹介しました。その時点での RDT の最新バージョンは V0.5 でした。この記事では、このツールを再度取り上げます。現在では RDT は Aptana RadRails と呼ばれ、Aptana Studio または Eclipse 用のプラグインとして入手することができます。この記事では、このプラグインの新機能のいくつかを紹介します。
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 ウィンドウ
必ず 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
Employee クラスのすべてのメソッドの折り畳み点であるマイナス記号をクリックすると、図 3 のような表示になるはずです。
図 3. Employee クラスの中で折り畳まれたメソッド
これを見るとわかるように、コード・フォールディングによって作業環境の管理や制御が可能になり、関心対象のコードに集中できるようになります。Preferences 画面に戻り、Ruby のコード・フォールディングの設定を見ると、最初にファイルを開く際に RDT がコメントやメソッド、あるいは内部クラスを折り畳めるオプションもあることがわかることと思います。この方法によって、大量のコードに惑わされることなく、クラスの基本的な構造を素早く知ることができます。ところが次のセクションで説明するように、コードの概要を調べるためには、もっと簡単な方法があるのです。
アウトライン・ビュー
「Eclipse に Ruby Development Tools プラグインを使用する」では、Ruby のソース・ファイルの要素までナビゲートする方法の 1 つとして、アウトライン・ビューに触れました。アウトライン・ビューを使うと、クラスや内部クラス、メソッド、変数などをツリー風に表現したものを素早く表示することもできるのです。もし何らかの理由で Ruby パースペクティブにアウトライン・ビューが表示されていない場合には、Window > Show View > Outline の順に選択することで容易にアウトライン・ビューを開くことができます。するとドッキング可能な形でコードのアウトライン・ビューが開きます。hr.rb ファイルの場合、アウトライン・ビューの要素が完全に展開されると図 4 のようなものが表示されるはずです。
図 4. アウトライン・ビューに表示された、ツリーに展開して視覚化された hr.rb ファイル
それぞれのシンボルやシンボルの色は特別な意味を持っていますが、その意味が明確な場合と明確ではない場合があります。意味が明確ではない場合、その意味についての情報を得るには、Window > Preferences の順に選択して表示されるダイアログで Ruby > Appearance > Members Sort Order の順に選択すれば簡単です。この操作はアウトライン・ビューを表示するための鍵であり、この操作によってアウトライン・ビューのシンボルの表示方法を調整したり表示順序をソートしたりすることができます (図 5)。
図 5. 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 ドキュメント・リーダーの設定
この設定を行うと、Eclipse の Ruby パースペクティブの下の方に RI タブが表示されるはずです。もし何らかの理由で表示されていない場合には、Window > Show View の順に選択してから RI を選択し、RI タブの入力フィールドに Array と入力します。すると RI は検索対象と一致するものを見つけようとします。あるいは提供されている選択肢をスクロールし、その中から 1 つの項目をクリックすることもできます。Array の場合には図 7 のようなものが表示されるはずです。
図 7. 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 リソース全体を素早くブラウズできると、別の面から生産性を高めることができます。次のセクションでは、他にどんなものが 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 class | os-eclipse-rdt-rubyeclipse.hr.rb.zip | 1KB | HTTP |
|---|
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | |  | Robi Sen は Department13 LLC の副社長です。Department13 LLC 社は雑誌 Fortune のランキングによる上位 1000 社や政府機関を主な対象に、さまざまな情報サービスや技術サービスを提供しています。彼は大部分の時間を巨大なエンタープライズ規模のアプリケーション開発に費やしており、またエンタープライズ・アプリケーションの統合や SOA (service-oriented architecture) の話題に関して積極的な発言を行っています。 |
記事の評価
|