asciidoctor-pdf-linewrap-jaでの学び その3 実装から公開まで


asciidoctor-pdf-linewrap-ja作成過程での学びをまとめるシリーズ。 前々回は禁則処理について整理、前回は具体的なロジックの検討でした。

今回はいよいよ実装です。Ruby素人なのであれこれ参考にしながら進めていくことになります。

実装

チートシートとAtomのシンタックスハイライトに頼りつつ、分からなくなったらGoogle様に聞く、の繰り返しです。 短いコードなのでIDEはなくて大丈夫でしたが、シンタックスハイライトはないと苦しいですね。

命名やスタイルもなるべくRubyっぽくなるよう努力しました。合っているかどうか分かりませんが...

公開

せっかく作ったんだからということでgem化してRubyGems.orgに登録することにしました。先人が詳しくやり方を公開してくれているので、参考にしながら作業すれば問題なし。

唯一ハマったのは「追加したファイルがなぜかgemに含まれない」という事象。

これ、gem生成の仕組みを理解していなかったのが原因でした。bundle gemコマンドでできる雛形では、gemspecファイルに

spec.files         = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }

と記述されます。つまり、gitコマンドの結果をもとにgemファイルに含めるかどうかを決めているんですね。

そうとは気づかず、git addをしないまま開発をしていたので、ファイルがgemに含まれなかった、というオチ。 分かってしまえばなんてことないんですが、土地勘ない言語だと正解になかなか辿り着きませんね...


そんなこんなの経緯を経てasciidoctor-pdf-linewrap-jaは作成されました。 おかげさまでRubyGems.orgでもぼちぼちダウンロードされているようです。なんか嬉しいですね。もっと広まれー。

せっかく公開したので、今後も改善のアイデアが思いついたらバージョンアップしていきたいと思っています。




関連(するかもしれない)記事


おススメ