トップ 最新

ただのにっき

2017-01-20(金) [長年日記]

tDiaryをruby 2.4対応した

昨年末にリリースしたtDiary 5.0.3のリリースノートで、直前にリリースされたruby 2.4.0への対応のことは書かなかった。標準的なセットでは問題なく動いているものの、gem化して独立させた周辺パッケージのいくつかが2.4未対応のgemに依存していたので、それらが追いついてからでもいいか、という感じだったので。

その後確認用のブランチをおこしてチェックをしていたら、依存関係はだいたい片付いたものの、CIでおかしなエラーが出ていてパッとみただけでは原因がよくわからない。で、じっくりコードを追いかけていった末に、テンプレートの中でこんな行を見つけてヘナヘナになった:

  elsif @options2[k].class.to_s =~ /^(Fixnum|FalseClass|TrueClass|NilClass)$/

いやいや、おまえ、tDiaryはruby 2.4で入った非互換関係ないしとか言ってただろ(笑)。がっつり依存してるやんけー*1。とほほ。

そもそもこのコードがダサいというのは置いておくとして*2、とりあえず動くようにしてコミットしておいた。これでいちおう、2.4対応は済んだかな。

なお、この日記のコードベースはちょっといじってあるので、ここを2.4にするのはもうちょっと先。

Tags: tDiary ruby

*1 FixnumクラスはなくなってIntegerに統一された。

*2 ログをたどったらこれが書かれたのは2003年(!)である。13年以上前のコードをメンテしてるとか、ときどき怖くなるね。