RubyGems.org へ gem を公開する。

gem くらい作れないとなぁと思い gem の作り方を調べてみました。やってみると、けっこう簡単です。

やりたいこと

  • 作った ruby のプログラムを gem にする
  • gem を RubyGems.org で配布してみる

予め必要なこと(1

RubyGems.org で gem を配布するには、RubyGems.org でアカウントを作る必要があります。
まだお持ちでない方は、下記のリンクへアクセス、画面右上の「sign up」をクリックして下さい。

画面に従って、登録作業を行って下さい。

次に、RubyGems.org へアップロードするために API Key が必要になります。
RubyGems.org へログインした状態で、自分のアカウントをクリックすると「Edit Profile」が表示されます。
プロフィール画面の下の方に、あなたの API Key が表示されます。

プロフィール画面の直リンクは下記の通り(※リンクは古くなる可能性があります)

API Key は以下の場所に設置しなければいけません。

~/.gem/credentials

RubyGems.org にはこの操作をワンライナーで実行するコマンドが記載されています。

$ curl -u komiyak https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials

予め必要なこと(2

RubyGems.org へ gem をリリースする時、その gem が オープンな Git リポジトリで管理されている必要があるようです。
GitHub を利用することをオススメします。

GitHub のアカウント登録は、大丈夫ですよね...?



やってみよう(Step by Step)

新しい gem を作ってみます。いまどきの gem 作成は bundler を使うのが良いそうです。
gem の名称を「hogehoge」とした場合、下記のコマンドで gem の基礎が作成されます。

$ bundle gem hogehoge

gem の名称は、RubyGems.org に公開する場合、ユニークな名称になっている必要があります。
例えば RubyGems.org に hogehoge という gem がすでに存在している場合は、
リリースの実行時に問題が起きてしまいますので、予め確認しておきましょう。


gem の基礎を、正式な gem へとビルドしましょう。

$ bundle exec rake build

これにより「pkg/hogehoge-0.0.1.gem」というバイナリファイルが作成されます。



次に、この gem を RubyGems.org へリリースしてみます。
まず gem が Git のリポジトリで管理されている必要があります。
変更済みのソースを commit します。


そして、GitHub 上にリモートリポジトリを作成し、
そこに対して gem を push します。



commit / push できている状態で、下記のコマンドを実行すると
gem を RubyGems.org に公開できます。

$ bundle exec rake release

【補足】作った gem を自分の環境で動作確認したい。

以下、補足。
作った gem の動作確認方法です。

「rake build」コマンドで gem を生成できることはご説明しましたが、
これを自分の環境にインストールするコマンドがあります。

$ bundle exec rake install

これで、自分の gem 環境に自作の gem がインストールされます。
インストールした gem は、Ruby 環境から利用可能です。
例えば irb から、作成した module Hogehoge を確認することが出来ます。

$ irb

> require 'hogehoge'
=> true

> Hogehoge
=> Hogehoge


アンインストール方法ですが、rake タスクにこれらしいものが見当たりませんでした。
私の場合、gem コマンドから直接 uninstall してみましたが、これでも消せました。

$ gem uninstall hogehoge


以上。