💎

Ruby Type Profiler を使ってみる

2020/09/20に公開

https://github.com/mame/ruby-type-profiler に書いているとおりにすすめる

git clone https://github.com/mame/ruby-type-profiler.git
cd ruby-type-profiler
git submodule init
git submodule update
bundle install
ruby exe/type-profiler target.rb

target.rb のとろは自分でプログラムを書きます。

# test.rb
def foo(x)
  if x > 10
    x.to_s
  else
    nil
  end
end

foo(42)

と書いた場合は下記のように実行します。

ruby exe/type-profiler test.rb

私の環境では ``require': cannot load such file -- rbs (LoadError)` が出たのでインストールしたら実行できました。

gem install rbs

submodule でインストールしているはずなのでチェックしたら下記で最新版での実行ができました。

追記: PRでREADMEの更新をマージしていただきました。

cd rbs && bundle install && bundle exec rake parser && cd ..

現状smoke以下に確認用のファイルがあるようです。

bundle exec ruby exe/type-profiler smoke/alias.rb
# Classes
class Object
  def foo : (Integer) -> Integer
  def bar : (String) -> String
end

class Test
  def baz : (Integer) -> Integer
  def qux : (String) -> String
end

Discussion