トップ «前の日記(2012/11/27 (火) ) 最新 次の日記(2012/11/29 (木) )» 編集 RSS feed

HsbtDiary


2012/11/28 (水) [長年日記]

[rubygems] 社内向けに rubygems 勉強会を開いた

資料作ったんですが、ただの箇条書きになったので日記にも箇条書きにします。

基礎編

  • gem install rails は gem i rails でいいですよ。gem u は unpack とか uninstall と二つ以上あるんで二文字目を入れないとダメです
  • gem pristine rails とすると cache ディレクトリにある rails-x.y.z.gem ファイルを使って再インストールしてくれます。OS のバージョンアップした時なんかは gem pristine --all とすれば便利。
  • gem list --no-versions したものを xargs に食わせる必要は無いです
  • gem cleanup すると古いバージョンが消えます。executable や dependency で y/n 聞かれるのがだるい時は yes | gem cleanup します。
  • rubygems は require すると依存関係も含めて全部 $LOAD_PATH にぶっこみます
  • bundler 使ってない限りは最新版を使います。だから古いのは消しても良いです。

作成編

  • bundle gem します。jeweler とか使わなくていいです。
  • gem の名前のルールは http://rubykaigi.org/2011/ja/schedule/details/17S03 を見ましょう。キラキラネームとかはいいんで、- と _ の違いは知ってください。
  • foo.gemspec を見ればだいたいわかります。この情報が rubygems や gem コマンドに影響します。
  • rake build すると gem が pkg に作成されます。TODOとかFIXMEを残すと怒られるので適当に直します。
  • rake install するとインストールされます。
  • rake release すると rubygems.org に登録されます。

自分の gem を作る編

  • お手製のDBバックアップスクリプトとかを bin/db-backup とか置けば lib が空っぽでも gem にできます
  • 社内用の rubygems サーバーを geminabox を使って構築しています
  • gem inabox foo.gem で作った gem を社内に公開できるんでバンバン gem にしてください

という流れでした。.gemrc の話をするのを忘れていたけど、だいたい流れは伝わったような気もする。