gretel の開発の話

2020年8月ごろに gretel という gem のメンテナーを引き継ぎました。お気に入りの gem だったんだけど、開発が終わろうとしていたのを見てメンテの引き継ぎを名乗り出てみたのでした。

今のところ活発に機能追加をしていくつもりはなく、Ruby や Rails のバージョン追従をしていくのを主軸にしています。安定的に使い続けられることを目的としています。CI を Travis CI から GitHub Actions移行したりとかもやりました。

とはいえちょっとずつ機能追加もしてます。Bootstrap 4の対応、schema.org のマークアップへの対応JSON-LD出力へのの対応とかとか。

で、今日もちょっと開発したので、そのメモ書き。

link_class オプションを追加した。これはオリジナルリポジトリ時代から issue としてあがっていた #10 への対応です。pretext_class, posttext_class とかはあるので、まぁリンクへのオプションがあってもよいなと判断して実装しました。

renderer.rb の実装をリファクタした。オプションが増えたり schema.org マークアップへの対応が入ったりでなかなかのカオスっぷりだったのが前から気になっていたので、気合を入れて作りを整理しました。

セマンティックなマークアップを生成する実装と、そうでないマークアップを生成する実装のクラスを分割。共通するマークアップは親クラスでレンダリングするように、という感じ。前よりは多少見通しがよくなった、と思う。

gretel のコードカバレッジは 100% をキープしてます。メンテを引き継いだあとで 100% にしました。メンテを引き継いだ当時からカバレッジはかなり高くて、最後の数%を俺が詰めたという感じ。その後はカバレッジが100%でないとテストがコケるように設定しています。これがあるおかげで、リファクタはかなりやりやすいし、安心感があります。月並みですが、テストコードは大事だなと思う次第です。

特にオチとか結論はない、近況報告でした。