bundle gemべんり〜、でもね…
RubyでRubyGemsを作るときにどのような方法を使っていますか?(えっ、Railsしか使ってないって!?まぁ、そういわずに便利なコマンドライン用のツールとかを作るのも楽しいよ〜)
最近では、
Bundlerを使ってRubyGemsを作るのが簡単
ですよね。
作りたいプログラムの名前を決めたら次のコマンドを実行します。これだけで一通りの開発環境とリリース準備ができてしまいます。
$ bundle gem very_nice_tool --bin --verbose
でもちょっと待ってよ。これを仕事で使うならば注意しないといけない点があります。
これが非公開のプログラムだったらRakefileを次のように修正したほうがいい。
修正前のRakefile。
require "bundler/gem_tasks"
修正後のRakefile。
# releaseタスク以外のbuildタスクとinstallタスクを有効にするため、 # 'bundler/gem_tasks'を使わずにそれらのタスクを定義している。 require 'bundler/gem_helper' Bundler::GemHelper.new(Dir.pwd).instance_eval do desc "Build #{name}-#{version}.gem into the pkg directory" task 'build' do build_gem end desc "Build and install #{name}-#{version}.gem into system gems" task 'install' do install_gem end end
Bundlerで作成したプログラムは、次のコマンドを入力するだけで簡単にインターネット上で公開できるようになっています。
$ rake release
それをできないようにしたのが上記の修正です。
万が一ですけど、
仕事で作成した非公開のプログラムをインターネット上で公開
なんてことを想像すると、ぞっとしますよね。