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!
うまくいった!
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