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でもぼちぼちダウンロードされているようです。なんか嬉しいですね。もっと広まれー。
せっかく公開したので、今後も改善のアイデアが思いついたらバージョンアップしていきたいと思っています。
関連(するかもしれない)記事
おススメ