前置き こんにちは。syohexです。好きな寿司ネタは鯖というかバッテラです。今回は拙作の Graphviz::DSLというモジュールを紹介させていただきます。 Graphviz::DSLは Ruby Gemの Gvizに影響され作成したモジュールです。 既存の Graphvizモジュールは OOインタフェースが中心で '$graph->add_node'のようなメソッドを使いグラフを構築していくものが主でした。しかし個人的に OOインタフェースの場合, 最終的なグラフの形状が把握しづらいという印象を持っていました. 'add_node'などのコードを追い, 自分の頭の中でグラフの形状を考える必要があるためと思います. ところが Gvizはそうではなく, DSLを用い, DOTファイルを直接書く感覚に近いものでした. 今までの Graphvizインタフェースは DOTを避けすぎていたように
![Graphviz::DSL - 「逆に考えるだ, DOTファイルっぽく書いちゃってもいいさと」 - Articles Advent Calendar 2012 Hacker](https://cdn-ak-scissors.b.st-hatena.com/image/square/b7911fb642c30f609f1f6d7e4330ee99bb1a7cd4/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fkfly8%2Fimage%2Fupload%2Fl_text%3ANotoSansJP-Black.otf_50_bold%3AGraphviz%253A%253ADSL%2520-%2520%25E3%2580%258C%25E9%2580%2586%25E3%2581%25AB%25E8%2580%2583%25E3%2581%2588%25E3%2582%258B%25E3%2581%25A0%2525E2%252580%25259A%2520DOT%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%25AB%25E3%2581%25A3%25E3%2581%25BD%25E3%2581%258F%25E6%259B%25B8%25E3%2581%2584%25E3%2581%25A1%25E3%2582%2583%25E3%2581%25A3%25E3%2581%25A6%25E3%2582%2582%25E3%2581%2584%25E3%2581%2584%25E3%2581%2595%25E3%2581%25A8%25E3%2580%258D%2Cco_rgb%3A000000%2Cw_900%2Cc_fit%2Fl_text%3ANotoSansJP-Black.otf_30_bold%3Asyohex%2Cco_rgb%3A000000%2Cg_south_east%2Cx_130%2Cy_120%2Fv1601626948%2Fog-perl-users-jp.png)