fortissimo1997's diary

備忘録的な使い方をする予定

Gemを作ってみた (0) 導入編

きっかけ

t-wadaさんの以下のtweet

使いたい!、、、でも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をインストールしてやり直すか、、、

次回へ続く