String#encode
がfallbackとして []
メソッドを持つオブジェクトも受け付けるように書かれているのだけど、実際には受け付けてくれなくてよく分からんなとなったのでruby-jpで質問してみた。
Sets the replacement string by the given object for undefined character. The object should be a
Hash
, aProc
, aMethod
, or an object which has[]
method https://docs.ruby-lang.org/en/2.7.0/String.html#method-i-encode
と言っているから受け付けそうなものだけど。
試したコードは次の通り
class C def [](str) p str '!' end end str = "\u00b7\u2014" p str.encoding p str.encode("Windows-31J", fallback: C.new) # => U+00B7 from UTF-8 to Windows-31J (Encoding::UndefinedConversionError)
nobuさんにbugsに登録してと言われたので、少しコードを整理して登録した。 1.9.3からのバグらしい。マジ……
nobuさんがそっこーで直していた。感謝
↑のbugsに上げたチケットの件で、そもそもこれを見つけた原因であるruby-signatureの方にも型定義を直すPRを出した。
Pathnameの型付けをしていたら、ドキュメントがおかしかったので直した。
確定申告をしていた。とりあえず一段落したから、来週あたりに仕上げて出すかな。
RuboCopに出しているPRのスタイルガイド版もPRした。英語レビューがほしい。
いつの間にかMarkdownからAsciiDocに変わっていてびっくりした。
twitter.com確定申告書に著作権が認められるのかが気になっています。https://t.co/amgLfmGvdQ を読む限り認められないと解釈できそうな気がするけど、ちゃんとやるなら国税庁に聞くのが良さそう。
— Pocke(ぽっけ) (@p_ck_) February 24, 2020
この会話スレッドが勉強になった
ずっとるりまのメソッド一覧って読めないなと思っていたのでIssueを立てた。明日あたり作業してしまいたい