久々のruby-signature。--no-stdlib
オプションが効いていなかったので直した。
ruby-signatureのSyntax Errorをチェックするコマンドが欲しかったので足した。
サブコマンドの名前はなにがよいのかね。アイディアなし…
private def foo end
上のようなメソッド定義を書いていた時にrbs prototype rb
コマンドがこれを無視していたのを直した。
弊社ではこのスタイルでprivateメソッドを定義していてこれは最高なので、社とは関係のないプロダクトでもだいたいこのスタイルで書いている。
Rails向けにrbsファイルを生成するやつを作っている。 今できるのは次のコードの生成。
- path helperの生成
- ただし引数は
*untyped
を受け取るようになっている- これはもう少しマシにできるはず
- https://github.com/bitjourney/ts_routes-rails を読めばいける
- ただし引数は
- Active Recordまわり
- カラムに対応するメソッドの定義
has_many
,belongs_to
,has_one
に対応するメソッドの定義- enumで定義されるメソッド、scopeの定義
scope
で定義されるscopeの定義- これはscopeが定義されていたらそれは自身のクラスのAR::Relationを返すものと雑に判定している
あとなんか生成しておくとうれしいやつあるかな。
静的解析をしていて、リテラルを表すASTをたどるコードを書くよりも、そのリテラルを表すRubyオブジェクトを扱った方がはるかに楽。 なので、ASTにリテラルしか含まれていないことを確認してコードをevalするという雑なコードを書いた。これは便利。