Gemライブラリ作ってこ!
これはWebアプリエンジニア養成読本 Advent Calendar 2014 - Qiitaの10日目の記事です。下書きに保存のまま一日寝かせてしまいました……。
Gemライブラリを作ってみよう
Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)
- 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/11
- メディア: 大型本
- この商品を含むブログ (5件) を見る
この本の中でもSinatraをはじめ、様々なGemライブラリをインストールしています。Gemライブラリ、便利で良いですよね。いやー賢い人が作ってくれた叡智のおかげで我々のような下々の者は楽ができます。すばらしい!
さて、ここでタイトルに戻りますが、いきなりライブラリを作ってみようとか言われても「え、ちょっといきなりは……」ってなりますよね。そうですよね。
一般的に、「Gemライブラリとしてリリースした」というと http://rubygems.org/ に公開している状態を指しますが、ここではもうちょっとお手軽な方法を紹介します。
BundlerとGitHub
BundlerでGemライブラリをインストールする場合、基本的にはrubygems.orgを参照しますが、gemの指定部分にGitHub*1のURLを指定することができます*2。
この指定を利用することで、RubyGemsで公開せずにGitHubに公開しておくだけでBundlerでGemライブラリとしてインストールし、利用できるようになります。
RubyGemsにgemライブラリとして全世界へ公開や!というのよりは、GitHubの自分のリポジトリに公開しておくだけの方が気が楽だと思いますので、最初の一歩としてこちらを試してみると良いでしょう。
どうやってやるの
Bundlerがインストールされているのを前提としますが、Bundlerを使うと、Gemライブラリのひな形が簡単に作れます。
$ bundle gem super_cool_gem
このようにbundle gem
というサブコマンドで、Gemライブラリのひな形を作成することができます。
あとは好きな様にライブラリを書き、コミットし、自分のGitHubへpushすればそれでオーケーです。
ちなみに、Rakeタスクがいくつか登録されており、rake release
とするとRubyGemsにリリースされます(ワオ、親切〜)。
Bundlerからの指定方法
GitHubのリポジトリにsuper_coll_gemというライブラリをpushしたとしましょう。
super_cool_webappというクールなWebアプリケーションを作る際にsuper_cool_gemを使いたい。そんな時はBundlerが使用するGemfileファイルに以下のように書きます。
source "https://rubygems.org" gem 'super_cool_gem', git: 'https://github.com/sugamasao/super_cool_gem.git' :
このように、gem名の後にハッシュ形式でgitというkeyとリポジトリを指定します(super_cool_gemは存在しないのでインストールできません)。
追記:GitHubの場合、以下のようにgithubというkeyを使うことでもうちょっと簡単に指定ができました!!(ありがとうございます)
@sugamasao github: 'sugamasao/super_cool_gem'
— Takafumi ONAKA (@onk) 2014, 12月 11
ちなみにこの指定方法、まだRubyGemsに上がっていない最新版ライブラリを使いたい場合によく利用されます(ブランチの指定もできるので、本流に取り込まれていない特定のブランチを指定する、ということも可能です)。
もっとGemの作り方知りたいってばよ!
そのような場合、ぜひこの書籍をご利用いただければと思います。
- 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/10
- メディア: 大型本
- この商品を含むブログ (16件) を見る
パーフェクトRuby | Gihyo Digital Publishing
次のアドベントカレンダー執筆者はこえむさんで、 手順で議論白熱? | こえむの編集後記 です。
こちらからは以上です