CodeZine(コードジン)

特集ページ一覧

Judeのクラス図からActiveScaffoldのコードを自動生成する

Jude/LuRuJu/JRuby/ERBを用いたActiveScaffoldのソース自動生成プログラム

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/12/25 00:00

Judeで作成したクラス図を元に、Ruby on Railsのプラグイン「ActiveScaffold」で必要なコーディングのソースを自動生成するツールを紹介します。

目次

はじめに

 このジェネレータは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で作成したクラスの名前をすべて取得するサンプルなら、

luruju_sample.rb
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ファイルの内容を取得することができます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5