読者です 読者をやめる 読者になる 読者になる

初めてのGem作りの思い出メモ

完全社内限定利用であるものの、初めてGemを作ったので、その内容をメモします

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

参考資料

作業のゴール

BitbucketにGemファイルをおいて、bundlerで使えるようにする

やったこと

パーフェクトRuby13章の「gemパッケージの作り方」を見ながら順次実施しました。

  1. gemspecファイルの記述。それほど迷う部分はありませんでしたが、設定項目がたくさんあるので、何か不足しているのでは、という不安と常に戦っていました。ただ、最初から公にはしないつもりだったので、当たって砕けろの精神でもりもり進めました。
  2. gemパッケージの作成。元々別で書いたコードをGem化する形だったので、コピペで完了。
  3. Rakeタスクの実行。rake buildのみ実行しました。
  4. gemの公開。ここでやり方が分からなくてちょっと調べましたが、結果、Bitbucketにリポジトリを作ってそこにPushで完了。
  5. 動作確認。bundle install でちゃんとgemとして使えることを確認。感動。
  6. Gemの内容を修正して、Bitbucketに再Push。バージョンを変えないとbundle updateしても修正内容が反映されませんでした。

思ったこと

  • bundle gemのコマンドで雛形が作れるのですが、色々最初から書いてもらえていて、必要最低限のコードだけ書けば大丈夫だよ、という印象を受けました。最近bundle initから始める自分の手作業を続けていたので、人の優しさに触れた感じがしました。
  • .gitignoreに最初からGitに登録したくないファイル、フォルダが登録されてる
  • READMEに最初から基本的な内容が書かれている
  • パッケージ用のファイルとかバージョン管理用のファイルとか用意されている
  • gemspecに書く内容がいまいち自信が持てなかったので、これは、人様のgemspecで勉強させて頂くのが良さそう
  • プロジェクトフォルダに色々コードを書いて、rake buildも出来たものの、その後のリリース作業がrake releaseだと本家に行ってしまいそうだったので、Bitbucketにだけアップする方法が分からず、Google先生に質問しました。結果、単にリポジトリ作ってpushするだけで、特別な手順は一切必要ありませんでした。(Gemfileで指定するだけ)
  • これまで「Gemを作ろう」みたいなLTを何度か聞かせて頂いて、作りたいとは思っていたものの、やっぱり難しそうなイメージがあって二の足を踏んでました。でも、実際やってみると、思ってた以上に簡単に出来て、かつ、自分のコードがgemとして使える感動が思った以上に大きいので、作ったこと無い方は是非一度挑戦されると良いと思いました。(私も1個作っただけで偉そうですが)

今後やりたいこと

一度Gemを作るとやり方分かった感が半端ないものの、gemspecの中身とか一般公開に向けては不安なところもあるので、しっかりと復習をして、次は世のため人のためにもなるような俺得gemを作りたいと思います。