diary

I like Hatena Star with a text selection.

2021-01-01

github.com

Steepでuntypedな値をyieldするメソッドに暗黙的なto_proc呼び出しの構文でシンボルを渡しているとエラーになってしまっていたので修正した。


github.com

Steepでauntypedの時、a || bboolになってしまっていたのを直した。


github.com

Steepでretryがblockの外にあるとエラーになってしまっていたので直した。


github.com

rbs prototype rbがendless method defでコケることがあるのを直した。 このパッチダサいので3.0.1で消したい…


github.com

rbs prototype runtimeでクラス定義をネストした形で定義したいなーと思って、とりあえずIssueを書いた。


gemに型を付けるの体験しておこうかなーと思ってmatoに型をつけていた。 https://github.com/bitjourney/mato

今日のPull Requestはだいたいこれをやっている途中で見つけたもの。

雑に型をつけていって、こんな感じにカバーできた。retryの件以外は型エラーも出ていない。

$ steep stats --log-level=fatal | column -s, -t
Target  File                                          Status   Typed calls  Untyped calls  All calls  Typed %
lib     lib/mato/anchor_builder.rb                    success  18           2              20         90.00
lib     lib/mato/concerns/html_node_checkable.rb      success  2            2              4          50.00
lib     lib/mato/config.rb                            success  27           6              33         81.82
lib     lib/mato/converter.rb                         success  26           27             53         49.06
lib     lib/mato/document.rb                          success  19           8              27         70.37
lib     lib/mato/html_filters/bare_inline_element.rb  success  10           0              10         100.00
lib     lib/mato/html_filters/mention_link.rb         success  32           0              32         100.00
lib     lib/mato/html_filters/sanitization.rb         success  2            1              3          66.67
lib     lib/mato/html_filters/section_anchor.rb       success  9            0              9          100.00
lib     lib/mato/html_filters/syntax_highlight.rb     success  29           28             57         50.88
lib     lib/mato/html_filters/task_list.rb            success  26           6              32         81.25
lib     lib/mato/html_filters/token_link.rb           success  12           0              12         100.00
lib     lib/mato/processor.rb                         success  18           24             42         42.86
lib     lib/mato/renderers/html_renderer.rb           success  1            0              1          100.00
lib     lib/mato/renderers/html_toc_renderer.rb       success  30           17             47         63.83
lib     lib/mato/rescue.rb                            success  4            2              6          66.67
lib     lib/mato/timeout.rb                           success  8            4              12         66.67
lib     lib/mato/version.rb                           success  0            0              0          0
lib     lib/mato.rb                                   success  16           0              16         100.00

差分はこんな感じ。 https://github.com/bitjourney/mato/compare/master...pocke:type rbs prototype runtimeMato自身とNokogiriの型をとりあえず生成した後、エラーが出るところを直したりuntypedをつぶしたりしていた。

mato内のコードのカバレッジを上げることを目標に型を書いていたのだけど、よく考えたら外部から使うインターフェイスの型を書いていないとあまり意味が無いよなあ。 ということでもうちょっとその辺整理したら取り込もうかな。

副次的に微妙に型を書いたnokogiri.rbsができたのだけど、これはgem_rbsに突っ込もうかなあ。しかし完成度は微妙。

そういえばどうでも良いのだけどmatoの発音は「まと」じゃなくて「めいと」だと聞いたことがあったような無いような気がする。


ゆるゆり19巻読み終わった。というか1巻から読み直して19巻に到達した。

ホラーじゃん