astah*で図を書いて redmineの wikiに埋め込むプラグインを考える その2

2010/08/22

Categories: jude redmine astah


embed-astah.png
なんとなくアイデアを書いてからもう4カ月。書いたっきり手つかずで放置してたけど、突然やる気になってみた。

astah*で図を書いて redmineの wikiに埋め込むプラグインを考える その1

ソースはgithubに。例によって無保証です。
tckz's redmine_wiki_astah at master - GitHub

前のエントリに書いたように、astaファイルから図をエクスポートするのは非常に時間がかかる。だから、wikiマクロでは、エクスポート対象astaファイルをDBに記録するだけにした。そして別途cronなどを使ってエクスポート処理を動かす、という流れ。

主なfeature

{{astah_diagram}}マクロ

    {{astah_diagram(public:foo.asta, namespace/diagram)}}
{{astah_diagram(source:/repo/path/foo.asta, namespace/diagram)}}
{{astah_diagram(option=value...,public:foo.asta, namespace/diagram)}}

オプション:

インストール

事前に、astah(のGUI)を実行可能な状態に。↓のエントリで書いたように、図のエクスポートにはGUIが動くように、DISPLAYとライセンスを適切に設定する必要がある。
astah*で図を書いて redmineの wikiに埋め込むプラグインを考える その1

1. プラグインをRAILS_ROOT/vendor/plugins/配下に置く。

    #{RAILS_ROOT}/vendor/
      plugins/
        redmine_wiki_astah/
2. redmine_wiki_astah/run-astah.shを環境に合わせて編集する。
    ASTAH_HOME : Astah*を展開したディレクトリを設定。astah-pro.jarがあるディレクトリ。
    DISPLAY    : 当該環境のディスプレイをポイントする。自分ところでは前のエントリのとおり、vncserverを使っている。
3. プラグインが使うテーブルを準備。
  rake db:migrate:plugins RAILS_ENV=production
4. Redmineを再起動
5. 管理者でredmineにログインする。
6. プラグインの設定画面で'secret key'に適当な文字列を設定する。
7. 図のエクスポートを定期的に行うようセットアップする。

図をエクスポートする

wikiに埋め込まれたastaをエクスポートして実際の図イメージを作成する。
Astah.export_diagrams()を定期的に実行する必要がある。

こんな感じで。
#{RAILS_ROOT}/script/runner Astah.export_diagrams -e production

エクスポートしたイメージをredmineを実行しているユーザから参照できるよう、実行ユーザに注意。


おわり


astaにたくさん図が含まれるとエクスポートに何分もかかってしまう。
図のID(astaファイル中の内部的なID。APIで取得できる)があらかじめわかっていれば、特定の図だけをエクスポートすることで短縮もできるが・・・・。
先のエントリに書いたように、大き目の図が多いせいでwikiに埋め込むと小さい。widthを付けることで収まりはよくなるが、リンクをクリックして図だけを表示しないと読み取るのは難しいかも。

環境:
  CentOS 5.5 i386
    ruby-1.8.7-p299(from source)
      redmine-1.0.0
      sqlite3-ruby (1.3.1)
    sqlite-3.7.0-1
    astah* pro 6.2




>> Home