Ruby Gem できた

野良 Gem の作り方(Ruby) - Camera Obscura
以前「野良 Gem」(「野良」なのは、僕が RubyGems.org に登録していないからです)を作ったのですが、いいかげんなやり方だったので、書き直してみます。

gem 'mygtk' を作ってみます。git が必要なので、なければインストールして下さい。
GitHub のアカウントに mygtk というリポジトリを作っておきます。
また、以下 Bundler を使うので、インストールしておいて下さい。


好きなディレクトリで

$ bundle gem mygtk

を実行します。すると mygtk フォルダが出来、色いろ他のファイルも作成されます。

$ cd mygtk

でフォルダの中に入ります。この中にある、mygtk.gemspec というファイルの中身を変更します。具体的には上のリンク先を見て下さい。spec.summary と spec.description は必ず中身を記述しなくてはなりません。また、依存する Gem があれば spec.add_dependency も記述します(標準添付ライブラリについては必要ありません)。

lib というディレクトリに入って、中の mygtk.rb を書きます(先頭に require "mygtk/version" が必要です)。これが require される Gem の本体になります。

git のインデックス(ステージ領域)に追加し、コミットします。

$ git add -A
$ git commit -m 'first commit'

Gem を作ります。

$ rake install

これで Gem が出来ているので、irb で require 'mygtk' などしてみて確認します。

リモートリポジトリ(この場合は GitHub)にファイルを上げます。

$ git remote add origin git@github.com:obelisk68/mygtk.git
$ git push -u origin master

リリースします。RubyGems.org に登録していれば、これで Gem が公開されます。登録していない場合はここでフリーズするので、しばらくして [Ctrl]+[C] で中断します。

$ rake release

これで GitHub に(野良)Gem が置かれました。終了です。


これで RubyGem に上げていれば、あとはふつうに Gem として使ってください。
「野良」の場合は、Bundler でインストールできます。Gemfile に

gem 'mygtk', github: 'obelisk68/mygtk'

と記述して、

$ bundle install

でインストールできます。使い方は以下。
GTK+でお絵かきしてみた(Ruby) - Camera Obscura


※参考
bundle gemは何をしてくれるのか? - ザリガニが見ていた...。
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ