Slide 13
Slide 13 text
● Ruby プログラムを機械が解釈できるようにする
○ ソースコードはあくまで文字列なので、文字列を解釈可能なものに変換する必要がある。
● RuboCop
○ Ruby プログラムを Ruby AST に変換して、あらかじめ用意しておいた違反しているツリー構
造と一致しているかどうかをパターンマッチして警告を出している。
○ RuboCop のルールを作ること = Ruby AST のパターンマッチを書くこと
● Packwerk(ここの紹介は割愛する予定)
○ 他言語にあるようなパッケージを仮想的に作り、他パッケージで宣言されている定数やクラス
を自パッケージで参照しているかどうかをチェックし、予期しない依存関係があれば警告を出
すのが Packwerk。
○ パッケージ内での定数・クラスの宣言、定数・クラスの参照は Ruby プログラムを Ruby AST
に変換した上で集計している。
Ruby AST がどんなところで使われているか