gemを作ってrubygems.orgでリリースする
作ったもの
slash-force
というかっこいい名前のgemを書きました。
Railsで特定のURLへとアクセスしたときに末尾にスラッシュを付けて強制的にリダイレクトさせるだけのプラグインです。
こんな感じでgemをリリースできました。
slash_force | RubyGems.org | your community gem host
gemの作り方
Gemの作り方まとめ 普通のgem編 - masarakki's blog を参考に。
bundle gem xxxxx -t
でプロジェクトの雛形を作成- 適当に実装
- gemspecのTODO部分を埋める
くらいです。
gemのリリース
- rubygemsにサインアップ後、 https://rubygems.org/profile/edit の下部に書かれた以下のようなコマンドを実行。
curl -u shotat https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
bundle exec rake release
を実行。
以上の手順でリリースが完了します。当初の想定の2兆倍くらい簡単なプロセスでした。
gem化のメリデメ
汎用的な機能のgem化のメリデメについて(私見)
メリット
- プロダクトコード内の
lib
やconcern
の肥大化を防げる - 車輪の再発明を防げる(gem自体が再発明でない場合に限る)
- UTをプロダクトコードと完全に分離できる
- 見知らぬ強い人がenhance, bug fixしてくれる可能性がある
- 楽しい
デメリット
- インタフェースの変更に大いなる責任が伴う
- やりすぎるとプロダクトコード側が苦しくなる(謎gemに大量に依存する状況になるとつらい)
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
- 作者: Sandi Metz,?山泰基
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/02
- メディア: 大型本
- この商品を含むブログ (1件) を見る