Gemを作ってみた (0) 導入編
きっかけ
t-wadaさんの以下のtweet
テストカバレッジデータ (lcov) を読み込んで、テストされていない行をオーバーレイ表示する emacs プラグイン coverlay.el をリリースしました https://t.co/yPKL9gzyhW
— Takuto Wada (@t_wada) 2014, 5月 27
使いたい!、、、でもRubyでLcov形式のカバレッジレポートを出力できたかな、、、
ないなら作ればいいじゃない! ということで作ってみることに
要件
既存のテストにあまり手を加えなくていいように、SimpleCovのカスタムフォーマッタとして作成することに
RSpecでテストを書いて、TravisあたりでCIできたら、と漠然と考えてました
着手、、、?
とりあえずgithubにリポジトリを作成 自動でライセンスやREADMEを作ってもらう
gemの作成支援用にjeweler(?)というgemがあるらしいというのを聞いたのでインストールしてみる
$ gem install jweler ERROR: Could not find a valid gem 'jweler' (>= 0) in any repository ERROR: Possible alternatives: jeweler, jeweler2, aweber, peeler, weeler
怪我の功名か、jewelerには2もあるらしい 2の方がいいという保証はないが、見つけたからには使ってみよう
$ gem install jeweler2 $ jeweler --rspec --github-username fortissimo1997 simplecov-lcov /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator.rb:221:in `read': No such file or directory - /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/templates/.gitignore (Errno::ENOENT) from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator.rb:221:in `render_template' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator.rb:230:in `output_template_in_target' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator.rb:185:in `create_files' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator.rb:126:in `run' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/lib/jeweler/generator/application.rb:29:in `run!' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/jeweler2-2.0.9/bin/jeweler:5:in `<top (required)>' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/bin/jeweler:23:in `load' from /home/fortissimo1997/.rbenv/versions/1.9.3-p448/bin/jeweler:23:in `<main>'
( ゚д゚) どうやらgemにファイルが足りないらしい、、、 おとなしくjewelerをインストールしてやり直すか、、、
次回へ続く