BuriKaigi2022 で Ruby のメタプロの話をしてきた

去年に引き続き BuriKaigi2022Ruby の話をしてきました。

ぶっちゃけ直前までなに話そうかずーっと考えてて最終的には好きなことを話そうと思って前々から離すきっかけをうかがっていた Ruby のメタプロの話をしました。
ちょうどメタプロRuby の輪読会をやっていて『どういう時に使うのか?』とよく聞かれていたのでこういう使い方もあるんだよーという意味合いも込めて。

ちなみに今回の内容は 5年前に書いた記事のリファインになります。
それに伴って gem-iolite も全部書き直しました。
まあ前々から書き直したいと思っていたのでいいきっかけですね。
前の実装は当時どういうことを考えながら書いていたのかが感じられて懐かしかったですねえ。
書き直したと言っても必要最低限の実装だけ書いたのでぶっちゃけ互換性はなくなりました。
いまはナンパラがあるので既に不要な感じはするんですが…なんか利用できる場面とかあるかなあ。
あと再実装してて思ったのは Ruby 3.0 のキーワード引数対応が思ったよりも大変でしたね。
実装の都合上、引数を受け取って別のメソッドにフォワードする事が多いんですが、引数に対していくつか処理を挟む必要があるので単純に (...)フォワードできなくて難しかったです。
と、思っていたけどいま見てみたら結構 (...) で対応できそうだな…あとでやってみるか。

はい、とういう事で Ruby のメタプロの話をしてきました。
運営の方々や聞いてくださった皆様ありがとうございましたー。
当時の Twitter の様子はいかにまとめてあるようなので気になる方がいれば見てみてくださいー。

https://togetter.com/li/1838657?page=16#h786_0

裏話

今回の BuriKaigi2022 では Zoom Events というツールを使っていました。
どういうツールなのかは詳しくは割愛するんですが Zoom でイベントが扱えるようになったツールです(そのまんま。
で、登壇者はクライアントの Zoom アプリを起動して各セッションなどの練習ができるようになっていたのですがなぜかうちの環境だとクライアントが起動しなくてちょっとトラブっていました。
おそらく OS の問題で Windows/macOS だと問題なくて UbuntuLinux?)でブラウザの Zoom Events のページから Zoom のクライアントを起動させようとするとなぜか起動しなかったんですよねえ…。
開始直前でちょっとバタバタしてしまってどうしようかかなり考え込んでいたんですが最終的には開始後の Zoom に入ってからスピーカー権限をもらえることで解決しました。
対応してもらった運営の方々ありがとうございました。
もし Zoom Events を使おうと思っている方がいればこういう問題があるかもしれないのでご注意を…。