はじめに
このジェネレータはJudeで作成したクラス図の情報を取得し、それを元に、ActiveScaffoldで必要なコーディングのソースを自動生成することにより、ActiveScaffoldの環境構築を行えば、クラス図を書くだけでActiveScaffoldのアプリケーションを作成できるというツールです。
早い話がクラス図を描いたら、とりあえずアプリケーションができますという話です。もちろん限定されたところにしか使えないと思いますが、JudeとRubyを活用してこんなに簡単にジェネレータが作れるというのを感じていただければ嬉しいです。
ジェネレータを使用するための環境設定
最初にジェネレータを使用するに当たって、JRubyとLuRuJuというライブラリ、およびUMLツールのJudeのセットアップを行いましょう。
JRubyのセットアップ
JRubyはRubyのJavaでの実装です。通常のRubyはC言語で作られていますが、JRubyはJava言語で実装されています。文法などは通常のRubyと一緒ですが、JRubyは本家のRubyより多少遅い代わりに、JavaのクラスをRubyから使用することができます。
JRubyはJava言語の上で動作するので、Java言語をまずセットアップする必要があります。JDK 5.xをSunのサイトからダウンロードして、JDKのbinディレクトリにパスを通しましょう。パスを通したら、コマンドプロンプトで次のようなコマンドを入力し、
>java -version
java version "1.5.0_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode, sharing)
といった表示がでればOKです。筆者の環境では、上記のJDKで動作確認しましたが、古いバージョンのJDKを使いたい場合はアーカイブの方からダウンロードすればいいでしょう。
次にJRubyのセットアップです。Sun Developer NetworkのダウンロードページからJRubyをダウンロードして、パスを通してください。
下記のコマンドを打ってバージョン情報がでてくればセットアップOKです。
>jruby -v ruby 1.8.5 (2007-11-01 rev 4810) [x86-jruby1.0.2]
わたしの環境では上記のようになっています。JRuby 1.0.2を使用して評価しました。
Judeのセットアップ
では次にJudeをインストールしましょう。Judeは日本で人気のある日本発のUMLモデリングツールです。操作性がよく、シンプルなので筆者も気に入っています。Judeに関しては詳細な手順がWebにあるのでそれに従ってインストールしてみてください。JudeのダウンロードページからCommunity Editionをダウンロードします。
なお、バージョンはProfessional Editionでも構いませんし、インストール済みの方はこの手順は不要です。
JudeにはJavaベースのJudeAPIというAPIが存在して、Javaで作成したダイヤグラムの内容を取得することができます。
LuRuJuのインストール
しかし、JudeAPIを使ってダイヤグラムを引き抜くには、Javaのコードをたくさん書く必要があり面倒です。「LuRuJu」は、JudeAPIをラッピングし、JRubyから直接Judeで作成したダイヤグラムの内容を取得できるようにするツールです。
インストールは簡単で、インターネットに接続した状態で、「JRuby\bin」のディレクトリに存在するgemを用いてインストールします。下記のgemコマンドは通常のRubyにも存在しますので、あなたがJRubyをインストールしたディレクトリを「%JRubyHome%」と表現するとすると、
>%JRubyHome%\bin\gem install luruju --source http://luruju.com/static/download/
でインストールされます。インストールされた後に次のようにタイプし、
>%JRubyHome%\bin\gem list -l luruju *** LOCAL GEMS *** luruju (0.0.1) A library for coordinating with Ruby And JUDE.
と表示されればOKです。最後に、Judeをインストールしたディレクトリにある「jude-api.jar」と「jude-community.jar」(professionalの場合は「jude-pro.jar」)にクラスパスを通せば設定完了です。
>cd "C:\Program Files\JUDE-Community" >set CLASSPATH=C:\Program Files\JUDE-Community\jude-api.jar; C:\Program Files\JUDE-Community\jude-community.jar
LuRuJuのサイトにもあるとおり動作確認テストも可能です。
>jruby %JRubyHome%\lib\ruby\gems\1.8\gems \luruju-0.0.1\test\jude_api_test.rb Loaded suite %JRubyHome%\lib\...\test\jude_api_test Started .................. Finished in 5.838 seconds.
上記のような結果が出てくれば動作テストもOKです。さて、LuRuJuのセットアップも完了しました。例えば、Judeで作成したクラスの名前をすべて取得するサンプルなら、
require "rubygems" require "luruju" require "kconv" project = Luruju::JudeApiLoader.load "c:/rubysample/luruju/sample_j.jude" project.classes.each{|clazz| puts Kconv::kconv(clazz.name, Kconv::SJIS, Kconv::UTF8) }
で簡単に作成することができます。.load
の次には、読み込みたいJudeファイルを設定しておきます。ここでは「sample_j.jude」というJudeファイルを読み込んでいます。
結果は下記のようになります。
従業員 部門 プロジェクト A B
LuRuJuだとたったこれだけ済みますが、Jude-APIでJavaのコーディングを行うと、大量のコードを書く必要があります。あくまで、やりたいことをシンプルに書いていくだけで、
Judeファイルの内容を取得することができます。