朝どれのRubyで昨日の分の日記をpublishしようとしたらNokogiriのエラーが出た。
とりあえずgem install nokogiri
しなおしたら動いた。
/home/pocke/.rbenv/versions/trunk/bin/ruby: symbol lookup error: /home/pocke/.rbenv/versions/trunk/lib/ruby/gems/2.8.0/gems/nokogiri-1.10.7/lib/nokogiri/nokogiri.so: undefined symbol: rb_empty_keyword_given_p
昨日からゆるゆりを見ながら作業している。
「あかりうすしお大好き」の回、狂気を感じてしまってすこしにがて
るりまでコメントしたPRを、自分で直してマージしていっている。
https://github.com/rurema/doctree/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+involves%3Apocke
とかから自分がコメントしたやつを探している
今日は気分が乗ったのでるりまのPRを沢山マージした。 TracePoint周りを見ているのだけど、バージョン差が多くて安定したexampleを書くのが少し大変そう。 まあある程度安定させつつ最新版で動けばいいかなぐらいの気持ち。
ruby-signatureで、あるクラスにincludeされることを目的としたmoduleってどう型を定義したら良いのだろう。
module M def print_request p request end end class ApplicationController include M end
このケースではMはrequest
メソッドが定義されていないからSteepではNoMethodError
になってしまうのだけど、実際はApplicationController
にinclude
されるから問題がない。
「このモジュールはこのクラスにincludeされる(or このinterfaceを持つクラスにincludeされる)」ことを前提として書けたら便利そう。あるのかな
ruby-signatureのstdlib-testが死んでいるのでなんとかしたい、けど何も分からなかった。 ruby-jpのtypesチャンネルにつぶやいた進捗をこちらにもぺたり。
ruby-sigatureのstdlib_testをRuby 3対応させるのが無理なのではという気がしています。 https://github.com/ruby/ruby/commit/beae6cbf0fd8b6619e5212552de98022d4c4d4d4 でキーワード引数分離がmasterに入ったんですが、これによって rake stdlib_testがコケるようになっています(今までも警告が出ていたのだけど) これを倒すにはhookをRuby 3 keyword対応させなきゃいけないのだけど、ちょっと試してみた感じ何も分からんになっています。
https://gist.github.com/pocke/780ccfe41fbd03bfd2bb93c3a7c5ec36 こんな感じでparametersを見てキーワード引数を持っているかどうかで分岐をさせてみるのを試したんですが、C実装のメソッドはキーワード引数があってもrestとしか言ってこなくて負けました。
そのあとmameさんにProc#ruby2_keywords
が入っているのを教えてもらって、それを使ったらうまくいった。
IFTTTで自分のTwitterのツイートとfavをSlackに流すのを始めてみた。 まだデータがたまっていないので便利かどうかはよくわからない。
IFTTTのUIがわけわからなすぎて大変だった。Zapierの方がわかりやすいなあ。
↑でも言ったのだけど、Ruby 3 keyword argumentがmasterに入って色々壊れそう。 https://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20200103
masterを常用するのは大変ですなあ
__builtin
系でparameters情報が増えていそうで便利。
master
irb(main):001:0> TracePoint.method(:trace).parameters => [[:rest, :events]]
2.6
irb(main):001:0> TracePoint.method(:trace).parameters => [[:rest]]