Gemを作るのが面倒になってきたので、githubから直接requireできたら楽になるかもしれないと思い、試してみました。
1 def git(uri, sha1, options = {}) 2 require "tmpdir" 3 basename = File.basename(uri) 4 outdir = File.join(Dir.tmpdir, basename, sha1) 5 unless File.exist?(outdir) 6 sh = proc{|command| IO.popen("#{command} 2>&1"){|io| io.read}} 7 sh["git clone #{uri} #{outdir}"] 8 sh["cd #{outdir}; git checkout #{sha1}"] 9 end 10 $:.unshift File.join(outdir, 'lib') 11 require options[:require_as] || basename.split(/\.git$/)[0] 12 end
Dir.tmpdir
意外と普通にgemの代わりに使える感じです。
posted by
genki
on Thu 16 Jul 2009
at 17:40