Slide 1

Slide 1 text

2024/07/27 廣江 亮佑 rbs-srcを用いた gem_rbs_collectionへの Contribution @rhiroe

Slide 2

Slide 2 text

2024/06/14 廣江 亮佑 自己紹介 名前: 廣江 亮佑 拠点: 岡山県 GitHub: @rhiroe X: @buta_botti

Slide 3

Slide 3 text

型のある開発

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

例えば、Rails7.1で追加された async_* メソッドのRBSはまだない

Slide 6

Slide 6 text

手元のアプリケーションで 確認したい

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Demo

Slide 9

Slide 9 text

rbs-src setup --output ● rbs_collection.lock.yamlを解析 ● tmp/rbs-srcにgemの数だけgem_rbs_collectionをclone ○ sparse-checkoutでディレクトリを対象のgemのみに限定 ● sig/rbs-srcにtmp/rbs-srcのディレクトリそれぞれのsymlinkを作成 ● gemの依存関係をrbs_src.depに出力 ○ --output

Slide 10

Slide 10 text

Steepfile

Slide 11

Slide 11 text

Steepfile rbs_src.depが存在する = rbs-srcを使っている時

Slide 12

Slide 12 text

Steepfile rbs_src.depが存在する = rbs-srcを使っている時 .gem_rbs_collectionのRBSを使わない

Slide 13

Slide 13 text

Steepfile rbs_src.depが存在する = rbs-srcを使っている時 .gem_rbs_collectionのRBSを使わない rbs-srcがsymlinkを作成したrbsを使う

Slide 14

Slide 14 text

Steepfile rbs_src.depが存在する = rbs-srcを使っている時 .gem_rbs_collectionのRBSを使わない rbs-srcがsymlinkを作成したrbsを使う source type が stdlib のものはruby/rbsのRBSファイルを使う

Slide 15

Slide 15 text

gem_rbs_collectionにgemのディレクトリがない ● gemのディレクトリ自体がない ● 今使っているバージョンのディレクトリがない

Slide 16

Slide 16 text

gem_rbs_collectionにgemのディレクトリがない ● rbs-src の rbs-src link で tmp/rbs-src にディレクトリを作成し、 sig/rbs-src にsymlinkを作る rbs-src link https://github.com/ruby/gem_rbs_collection.git devise 4.9 ● 作成したディレクトリで gem_rbs_collection の bin/init_new_gem を実行 し雛形を生成する

Slide 17

Slide 17 text

よきRBSライフを