Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2011-06-19

bundlerでgemを作ってみる

昨日のYokohama.rbで#railshackathonに向けたアイデアソンでいろいろ話してたら 新しいブログシステムのメージが具体化してきた。

実装はbilbo以上に小さくできそうな気がしているので、もうアイデアをメモするよりもメモがわりにプロジェクトを立ち上げてしまっていいかなと。

で、どうせだから今回はgem化してみよう。

以前@jugyoに教えてもらったjewelerを使ってみようかなと思ったけど、gem作成においてより後発のbundlerを使ってみることにする(thx @takkanm @nagachika)。

雛形の作成

gem install bundler

新しいgem化するプロジェクト名をpipinとすると、

bundle gem pipin

これでpipin gemの雛形ができる。

=>
      create  pipin/Gemfile
      create  pipin/Rakefile
      create  pipin/.gitignore
      create  pipin/pipin.gemspec
      create  pipin/lib/pipin.rb
      create  pipin/lib/pipin/version.rb

Hello Pipin

ひな形として作成されたlib/pipin.rbに"Hello Pipin!"の表示を追加する。

module Pipin
  # Your code goes here...
  puts 'Hello Pipin!'
end

それとpipin.gemspecのTODO(2箇所)を書き換えてbuildする(TODOという文字列が残っているとbuildできない)。

rake build
=> pipin 0.0.1 built to pkg/pipin-0.0.1.gem

gemファイルが作れた模様。

gem install

次のようにbuildで作成されたpkg/*.gemファイルを直接指定したらインストールできた。

gem install pkg/pipin-0.0.1.gem

実行してみる。

ruby -r pipin -e ''
=> Hello Pipin!

うまくいった!

RubyGems.orgで公開

pipin.gemspecの s.authorsとs.emailをRubyGems.orgに作成したアカウントに合わせてbuildした上で、

gem push pkg/pipin-0.0.1.gem

でOK。

githubへ

githubのDashboardのNew Repositryでリポジトリを作成し、そのあと表示される以下のヘルプの手順でOK。

Existing Git Repo?
  cd existing_git_repo
  git remote add origin git@github.com:dan5/pipin.git
  git push -u origin master