@kyanny's blog

My thoughts, my life. Views/opinions are my own.

omniauth-loctouch と nonopaste-cli を rubygems.org で公開しました

OmniAuth のロケタッチ用ストラテジーである omniauth-loctouch と NoNoPaste 用のコマンドラインインターフェースである nonopaste-clirubygems.org で公開しました。

初めて Gem を公開したので記念にスクリーンショットを撮ってみた

nonopaste-cli はもともと、社内のイントラネット内に設置されている NoNoPaste をターミナルから楽に使いたくて書いたツールで、単にコードのバックアップを置いておくくらいのつもりで GitHub で公開していたものですが、 Gem 化のリクエストをもらったのでリリースしてみました。 gemspec を書いてくれたうえにリリースまでの手順を丁寧にレクチャーしてくれた KitaitiMakoto さん、ありがとうございました。

omniauth-loctouch はせっかく作ったので Gem にしてリリースしたいなあと思っていたものの、公開までの手順がよくわからなくてそのままになっていましたが、晴れてリリースすることができました。

ついでに Bundler で rubygems.org に Gem を公開する手順をメモ

新しく Gem を作る場合は
$ bundle gem
Bundler でひな形を作ったのではないプログラムの場合は Rakefile をなければ作って以下を書く
require 'bundler/gem_tasks'
  • rake -T でタスク一覧を表示できる
.gem ファイルを作る(インストールはされない)
$ rake build
自分の手元の環境にインストール
$ rake install
  • システムの Ruby を使ってる場合は sudo が必要。 rvm/rbenv などで $HOME 以下に入れてる場合は sudo なしで良い。
rubygems.org に公開する
$ rake release
  • ローカルで Git の管理下にあれば gemspec で指定した VERSION のタグを打つ(annotated tag ではない)
  • remote origin にタグを push してくれる(?)
  • Gem をアップロードするには rubygems.org にサインアップして API キーを入手する必要がある。 API キーはhttps://rubygems.org/profile/edit:アカウントの編集ページに記載されている。以下のようなコマンドラインが表示されてるのでコピペで実行すると(ログインパスワード聞かれて) API キーが保存され、これでアップロードできるようになる。
$ curl -u kyanny https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials

実際に rake release するとこんな風に表示される。

$ rake release
nonopaste-cli 0.0.1 built to pkg/nonopaste-cli-0.0.1.gem
Tagged v0.0.1
Pushed git commits and tags
Pushed nonopaste-cli 0.0.1 to rubygems.org

$ rake release
omniauth-loctouch 0.0.1 built to pkg/omniauth-loctouch-0.0.1.gem
Tagged v0.0.1
Pushed git commits and tags
Pushed omniauth-loctouch 0.0.1 to rubygems.org