RDT にリファクタリング機能
使えるかどうか確認していないけど、
RDTにリファクタリング機能がくっついた。
おそらく、GoogleのSummerCodeの成果をマージしたものとはっし〜〜は推測しているのだよ。
□ Welcome to the Ruby Refactoring Wiki
http://r2.ifsoftware.ch/trac
-
-
- -
-
□ リファクタリングの機能一覧
- ローカル変数からフィールドへの変更
- フィールドのカプセル化
- メソッドの抽出(コードのある部分をメソッドとして切り出す)
- ローカル変数のインライン化
- ファイルのクラスの断片をマージ
- 外部クラスの断片をマージ
- フィールドの移動
- メソッドの移動
- 子クラスへのメソッドの移動
- 名前変更
- ローカル変数の分割(?)
- アクセサの生成
- フィールドを使ったコンストラクタの生成
- メソッドのオーバーライド
-
- -
まだ使えるかどうか試していないけど、多分今のところ限定的使用に留まりそう。
RDTは、参加メンバーが少ないのになぜか複数のプロジェクトが走っている。
□ Ruby lint RDT Integration
http://cwilliams.textdriven.com/articles/2006/05/19/ruby-lint-functionality-in-rdt
いろいろ機能が付いてくれるのは嬉しいんだけど、
一つ一つの完成度がいまいちなのはどうかとも思う。
機能を絞って順次統合していかないと、現在の勢いだと明らかにNetbeansのRuby環境に負けそうな感じ。いや、本当に。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
■ 追記
InteliJ IDEAにもRubyプラグインが出た。
http://www.oreillynet.com/ruby/blog/2007/02/intelllij_idea_demo_of_ruby_pl.html
簡単に下記にはっし〜〜流ビルドのやり方を書いておくのでご参考までに。
■注意
- TorタンのBlogを見ながらやる場合は、CVSチェックアウトで必ず -P オプションをつける
- Eclipse上でビルドする場合は、必ずEclipseの実行させているJVMとAntを実行させるJVMを同一のものにする(はっし〜〜は、JDK 6(Windows版) を使った )
cvs.netbeans.org から下記のたくさ〜んなプロジェクトをチェックアウトすると大吉!
■ CVS
② チェックnbbuildプロジェクトのbuild.xmlを実行するのだけど、
■ Targetsタブ
- build-nozip
- merge
を選択。
■ Mainタブ ー Arguments
- Dmoduleconfig=ruby
を記載
■ チェックアウトするプロジェクト
apisupport applet autoupdate beans classclosure classfile clazz core db debuggercore debuggerjpda diff editor extbrowser form graph html httpserver i18n ide image j2ee j2eeserver jarpackager java javacvs javadoc jellytools jemmy junit languages lexer libs logger mdr mobility monitor nbbuild objectbrowser openide openidex profiler projects properties refactoring schema2beans scripting serverplugins subversion tasklist text tomcatint usersguide utilities vcscore vcscvs vcsgeneric versioncontrol web websvc xml xtest
今週のNetBeansのRuby環境
Tor Nobeyが今週のNetBeansーRuby環境の様子を書いていたりするんだけど、
2/2にNetBeansのCVSにあげたようです。
■ Ruby Screenshot of the Week #3
http://blogs.sun.com/tor/date/20070202
ビルドのやり方も書いてくれているのでさっそくビルドしてみることにした。
・・・・というわけで、
「はっし〜〜が夜なべをしてNetBeansビルドしたよ♪〜」
・・・ああ、昨日は木枯らしが吹いていたなぁ。
チェックアウトからビルドまでを4回失敗して、結局5時間以上かかっちゃったよ(遠い目)。
最後はEclipse環境上でビルドしてやっと成功。
試してみると、おいおい、RDT(EclipseのRuby環境)って何だよ!くらいにすでに完成度が高い。
特にスゴイのが、
- Syntax Coloring(コードの色づけね)
- コードジャンプ
コードジャンプはRubyの組み込みクラスにまでジャンプしてくれる(もちろん、組み込みクラスはCかJavaなのでダミークラスにだが・・・)。
RDTの場合、同じファイル内のメソッド形式呼び出しならジャンプしてくれんだけどね。
その他、Windowとして以下のものがある。
- Navigator (Eclipseのアウトラインみたいなやつ)
- Lucene Index Browser
- AST View (RubyのAbstaract Syntax Tree をJRubyを利用して表示する)
- Token Spy Window
多分、1は説明の必要もないアウトライン表示。
2は(おそらく)コード補完候補を出すための仕組みの制御。
NetBeansのRuby環境ではコード補完候補を出すために、LuceneというJava製の全文検索エンジンを使っているもよう。
全文検索エンジンのインデックス作成範囲を指定するツールが2というわけだ。
*1
3は、これは説明難しいな・・・。
簡単に言うと、コンパイラのlexer(字句解析)なり、Parser(構文解析)で解析した結果はAbstarace Syntax Tree(抽象構文木)(以下、AST)という形式で保存しておくわけだよ
プログラムの実行時はこのASTをたどりながら実行するというのが、インタプリタ型言語の仕組みだったりする。
*2
ということはだ、プログラムからコードの文字列を触るよりも、このASTをいじくった方がいろいろとプログラミングしやすかったりする。
したがって、ASTを見られる環境があるとまぁ、いろいろとツールを作ったりしやすいというわけだ。
おそらく、このASTツールはTorタンが自分自身のために使っていると見た。
ちなみに、4のToken Windowはlexerの字句解析結果を見るためのツールだね。これもTorタンが使っていると見た。
(だって、僕らパンピーには必要ないもの。)
あと、書き忘れたけどRailsのプロジェクトも作れる。Webrickも自動的にあがる。
それにしても、すごいぞ! Torタン。 この短期間でよくぞここまで・・・。ぐっじょぶ。
Ruby Screenshot of the Week #2
http://blogs.sun.com/tor/date/20070122
今週のNetBeansのRubyエディターの様子。
以下、上記の Blog 訳。
- あるクラスのメソッドを定義することをNetBeansは検知します。スーパークラスから継承されたメソッドとマッチするときだけ補完候補を出力します。
- この場合、Integer クラスを継承していて、メソッド名が”ab”ではじまる2つのメソッド(一つは、Numericクラス、もう一つはオブジェクトクラス)とマッチします。
- rdoc(JavaDocのRuby版みたいなものです)をベースにメソッドの説明を表示します。
- 各々メソッドがどこにあるか(どこからやってきたか)を表示します。
- ほどほどに壊れたソースも扱えます。
メソッド補完はスーパークラスのメソッド限定みたい。
Rubyは動的言語だからなかなか Type Inference(型推論)は難しい。
この辺をRDT(Rubyの開発環境の一つ。Eclipse Pluginとして実装している。)は、
On Demand Type Inference という方法で型推論エンジンを実装して実現しようとしている。
詳細は下記のURLを参照。
■ mputさんのRubyConf2006の報告( の最下段にあります)
http://mput.dip.jp/mput/?date=20061023
■ RubyConf2006での発表内容の話(スライドも見られます)
http://soc.jayunit.net/articles/2006/10/22/talk-at-rubyconf2006
実は、Rubyの開発環境で一番重い部分がこの型推論の部分でmputさんの言うとおり、
型推論が一番の鬼門(特にevalが鬼門か?)。
だから、NetBeansの場合はまずはスーパークラスのメソッドの補完だけに限定している。
この部分を Tor Nobey(NetBeans のRuby開発環境の実装者) がどのように解決するかは
非常に興味があるところ。
GlassFish 上で JRuby on Rails を動かす
前からあったネタなのだが、GlassFish、JRubyのバージョンアップに伴いころころやり方が変わっている。
以下、URLは 1/19版のやり方。
・・・試すか。オレ。
http://blogs.sun.com/whacko/entry/grizzilicious_ror_on_glassfish
Ziya かっちょいい。早速使ってみよう〜〜。
今週の Ruby on NetBeans の様子
■ Ruby Screenshot of the Week
http://blogs.sun.com/tor/date/20070111
どうしたら、使えるかしら。
もしかしたら、CVSから最新版とってくれば使えるか?(← 試せよオレ)