RubyGems.orgで公開する手順

前回からの続き。

  • gemコマンドは、.gemファイルを元に、gemが管理する階層にライブラリやコマンドをインストールする。
  • 前回手順7で試したとおり、.gemファイルさえあれば、それがどこにあってもインストールは可能なのだ。
    • 但し、そのためには.gemファイルの正確なパスを知っている必要がある。
  • 一方、gemコマンドの醍醐味は、.gemファイルがどこにあるか?なんて気にせずに、gem install jpdateで素早くインストールできてしまう所にある。
  • gemコマンドは https://rubygems.org で公開されているgemを探しに行って、同じ名前のgemが見つかれば、それをインストールしようとしている。
  • RubyGems.orgに.gemファイルを登録しておけば、苦労最小のgem install jpdateでインストールが可能になるのだ。(憧れる)

以下は、jpdateをRubyGems.orgで公開した時の手順

手順1 ユーザー登録

  • 必要項目(たった3項目)を入力して、[Sign up]ボタンを押した。(ユーザー登録完了)


手順2 APIキーの取得と保存と権限設定

  • サインイン状態なので、上段のユーザー名(Handle名)をクリックして、Edit Profileをクリックした。
  • API Accessの項目を見て、~/.gem/credentialsにAPI keyを保存した。
    • 書かれているとおり、以下のコマンドで素早く設定できた。
$ curl -u ユーザー名(Handle名) https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials

手順3 アップロード

  • gem pushコマンドでRubyGems.orgにアップロードしてみた。
    • 公開することになるので、もう少しまともなgemとなるよう修正して、jpdate-0.1.gemを作った。
$ gem push jpdate-0.1.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: jpdate (0.1)
  • 手順2のAPIキーまで取得できたら、次回以降はgem pushするだけで、どんなgemでも素早く公開されるのだ!

素晴らしいシンプルさ!(感動した)

確認

  • gem searchしてみると、見事にREMOTE GEMSにjpdate (0.1)が見つかった!
$ gem search jpdate

 *** REMOTE GEMS ***

jpdate (0.1)


リモートソース環境

  • gemコマンドがなぜRubyGems.orgに探しに行くかと言えば、リモートソースに https://rubygems.org/ が設定されているからである。
$ gem sources
 *** CURRENT SOURCES ***

https://rubygems.org/
  • もし、他のリモートソースも探して欲しい場合は、gem sourcesコマンドで追加できる。
$ gem sources --add http://gemcutter.org
http://gemcutter.org added to sources

$ gem sources
 *** CURRENT SOURCES ***

https://rubygems.org/
http://gemcutter.org
  • 削除してみる。
$ gem sources --remove http://gemcutter.org
http://gemcutter.org removed from sources

$ gem sources
 *** CURRENT SOURCES ***

https://rubygems.org/
  • 一時的に特定のURLのリモートソースからインストール
$ gem install --source http://gemcutter.org jpdate