diary

I like Hatena Star with a text selection.

2020-02-24

String#encode がfallbackとして [] メソッドを持つオブジェクトも受け付けるように書かれているのだけど、実際には受け付けてくれなくてよく分からんなとなったのでruby-jpで質問してみた。

Sets the replacement string by the given object for undefined character. The object should be a Hash, a Proc, a Method, 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)

bugs.ruby-lang.org

nobuさんにbugsに登録してと言われたので、少しコードを整理して登録した。 1.9.3からのバグらしい。マジ……

nobuさんがそっこーで直していた。感謝


github.com

↑のbugsに上げたチケットの件で、そもそもこれを見つけた原因であるruby-signatureの方にも型定義を直すPRを出した。


github.com

Pathnameの型付けをしていたら、ドキュメントがおかしかったので直した。


確定申告をしていた。とりあえず一段落したから、来週あたりに仕上げて出すかな。


github.com

RuboCopに出しているPRのスタイルガイド版もPRした。英語レビューがほしい。

いつの間にかMarkdownからAsciiDocに変わっていてびっくりした。


twitter.com

この会話スレッドが勉強になった


github.com

ずっとるりまのメソッド一覧って読めないなと思っていたのでIssueを立てた。明日あたり作業してしまいたい