DesignAssembler

備忘録に近い

【gem】gem in a box

geminaboxはgemホスト手軽に作れるようになるgemです。

geminaboxを使う

geminaboxをインストールした後適当なディレクトリを作成してconfig.ruを作成します。

$ gem install geminabox
$ mkdir -p geminabox_repo/data

#config.ru
require "rubygems"
require "geminabox"

Geminabox.data = "./data"
run Geminabox::Server

rackを起動します。

$ rackup

ブラウザで開くとこの画面になります。

f:id:hyottokoaloha:20160228143240p:plain

簡単すぎて魔法のようだ・・・

次に形だけのgemを作ってgeminaboxに放り込んでみます。

gem作成

何もしないgemを作ります。

$ bundle gem test_gem

test_gem.gemspecを書き換えてビルドします。

$ gem build test_gem.gemspec
WARNING:  description and summary are identical
WARNING:  See http://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: test_gem
  Version: 0.1.0
  File: test_gem-0.1.0.gem

できたらプッシュします。

$ gem inabox data/test_gem/test_gem-0.1.0.gem
Pushing test_gem-0.1.0.gem to http://localhost:9292/...
Gem test_gem-0.1.0.gem received and indexed.

アクセスするとちゃんと見えます。

f:id:hyottokoaloha:20160228143547p:plain

CI的にはGitHubのプライベートリポジトリやBitbucket使う方がいいのだろうか。

参考

Run your own gem server - RubyGems Guides