2017-11-27 1 views
0

私はVTRに似た宝石を作成して、メソッド呼び出しの記録を開始します。 これらのメソッドがあるクラス、行番号、そして記録を停止し、ymlファイルこれは事実上、実行のUMLシーケンス図メタデータ記述である。シーケンスダイアグラムジェネレータを作成するruby gem

さらに拡大すると、私は実際に写真のUML図を吐き出すためにマーメイドの宝石を使いたいと思います。

私はこのredditポストで概説されているアプローチを考えています。基本的に、何らかの種類の植物テキスト下流に解析するハッシュの配列を格納しています。 https://www.reddit.com/r/ruby/comments/11ns2l/does_a_uml_sequence_diagram_generation_gem_exist/

http://phrogz.net/ProgrammingRuby/ospace.html#tracingyourprogramsexecution

とにかく、最終的には、私の質問は...あるこのアプローチするより良い方法はありますか? レッドダイジェストで提案されているアイデアにちょっとしたことがありますか?

+0

あなたがすでに持っている答えは、基本的に私が最初に示唆しているものです。このカーネルメソッドをラップする標準ライブラリには、[Object-Oriented API](http://ruby-doc.org/core/TracePoint.html)もあります。 –

+0

ちょうど最近面白かったので、私は実際にはメソッドトレーサの[自分のバージョンを書きました](https://github.com/tom-lord/search_warrant)です。あなたはその/そのバリエーションを使用することができますが、標準ライブラリのアプローチはおそらくより良いアプローチです。特にCのメソッドも扱うためです。 –

答えて

2

最も簡単な解決策は、植物umlファイルを生成することです。プラントファイルはXMIファイルよりはるかに簡単で、プラントは多くのツールに統合されています。

これに代わるものでもあります。例えば

plantUML

@startuml 
Alice -> Bob: Authentication Request 
Bob --> Alice: Authentication Response 
Alice -> Bob: Another authentication Request 
Alice <-- Bob: another authentication Response 
@enduml 

が生成:

enter image description here

0

ZemUML支持C-ようなコードを。例えば

ZenUML.isAwesome()次の図を生成します。

enter image description here

あなたのメタDSLが同じ構文を以下の場合は、それが直接ZenUMLと統合することができます。 JSライブラリはnpmモジュールとして公開されています。