Jude/LuRuJu/JRuby/ERBを用いたActiveScaffoldのソース自動生成プログラム
牛尾 剛 [著] 2007/12/25 00:00

サンプルファイル 23.36 KB
1 2 3 4 5 →

はじめに

 このジェネレータは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ファイルの内容を取得することができます。


1 2 3 4 5
→
INDEX
Judeのクラス図からActiveScaffoldのコードを自動生成する
Page1
はじめに
ジェネレータを使用するための環境設定
動作確認するための環境設定
ジェネレータの使い方
ジェネレータのつくり方とアーキテクチャ
最後に
プロフィール
牛尾 剛 ウシオ ツヨシ

株式会社豆蔵 BS事業部 エンタープライズチーム。


注目の求人情報
システムエンジニア/株式会社 ディンプス
「無機質で、難しくめんどうなこと」を「人間味のある、楽しくて簡単なこと」に作り変える「ゲーム的発...
システムエンジニア/ゲーム開発会社
■募集職種:サーバー運用エンジニア(スタッフクラス) ■募集内容: ・Linuxサーバーのセットアップ...
サーバ技術者・NE/商社系SIベンダー
・ニーズのヒアリング、提案・見積 (営業と同行にてヒアリング)、提案のための検証 ・システム構築(...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: