2021年9月21日火曜日

Ruby で UML を出力する

Ruby で UML を出力する

概要

Ruby のコードから UML を出力するのに xumlidot というツールを使ってみました
使い方と出力結果を紹介します

注意点として Ruby3 系には対応していません https://github.com/os6sense/xumlidot/issues/36

環境

  • macOS 11.5.2
  • Ruby 2.6.6 3.0.2p107
  • xumlidot 0.1.0

Ruby 2.6.6 のインストール

Ruby3 系だと動作しないので 2.6.6 をインストールします

  • rbenv install 2.6.6

インストール

bundler でインストールします
pry にも依存しているのでインストールします

  • bundle init
  • vim Gemfile
gem "xumlidot"
gem "pry"
  • bundle instsall

テストコード

gem を作成するときの構成っぽい感じで作成していますが test.rb だけ作成しても OK です

  • mkdir -p lib/user
  • vim lib/user.rb
require 'rubygems'
require 'fileutils'

require_relative 'user/test'

module User
end
  • vim lib/user/test.rb
module User
  class User
    def initialize(name, age)
      @name = name
      @age = age
    end

    def show
      puts "#{@name} => #{@age}"
    end

    attr_accessor :name, :age
  end

  class SuperUser < User
    def initialize(name, age)
      super(name, age)
      @admin = true
    end

    def show
      super
      puts @admin
    end
  end
end

動作確認

  • bundle exec xumlidot lib > test.dot
  • dot -Tpng test.dot -o test.png
  • open test.png

これで以下のようなクラス図が生成されていれば OK です

最後に

Ruby3 系ですでに進めてしまっているプロジェクトに適用できなくはないですがいろいろ面倒なので素直に諦めましょう

参考サイト

0 件のコメント:

コメントを投稿