<?xml version="1.0" encoding="UTF-8"?>
<article>
  <body>Gem&#12434;&#20316;&#12427;&#12398;&#12364;&#38754;&#20498;&#12395;&#12394;&#12387;&#12390;&#12365;&#12383;&#12398;&#12391;&#12289;github&#12363;&#12425;&#30452;&#25509;require&#12391;&#12365;&#12383;&#12425;&#27005;&#12395;&#12394;&#12427;&#12363;&#12418;&#12375;&#12428;&#12394;&#12356;&#12392;&#24605;&#12356;&#12289;&#35430;&#12375;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;

ruby&gt;&gt;
def git(uri, sha1, options = {})
  require &quot;tmpdir&quot;
  basename = File.basename(uri)
  outdir = File.join(Dir.tmpdir, basename, sha1)
  unless File.exist?(outdir)
    sh = proc{|command| IO.popen(&quot;#{command} 2&gt;&amp;1&quot;){|io| io.read}}
    sh[&quot;git clone #{uri} #{outdir}&quot;]
    sh[&quot;cd #{outdir}; git checkout #{sha1}&quot;]
  end
  $:.unshift File.join(outdir, 'lib')
  require options[:require_as] || basename.split(/\.git$/)[0]
end
&lt;&lt;--

Dir.tmpdir&#12434;&#20351;&#12387;&#12390;OS&#12398;&#12486;&#12531;&#12509;&#12521;&#12522;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398;&#19979;&#12395;&#12522;&#12509;&#12472;&#12488;&#12522;&#12434;&#12463;&#12525;&#12540;&#12531;&#12375;&#12390;&#12365;&#12390;&#12289;&#25351;&#23450;&#12375;&#12383;&#12522;&#12499;&#12472;&#12519;&#12531;&#12434;checkout&#12375;&#12289;LOAD_PATH&#12395;&quot;lib&quot;&#12434;&#21152;&#12360;&#12390;&#12289;&#12522;&#12509;&#12472;&#12488;&#12522;&#21517;&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;require&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;

&#24847;&#22806;&#12392;&#26222;&#36890;&#12395;gem&#12398;&#20195;&#12431;&#12426;&#12395;&#20351;&#12360;&#12427;&#24863;&#12376;&#12391;&#12377;&#12290;</body>
  <cached-tag-list>ruby gem github memo</cached-tag-list>
  <comments-count type="integer">0</comments-count>
  <created-at type="datetime">2009-07-16T17:40:17+00:00</created-at>
  <daily-archive-id type="integer">1207</daily-archive-id>
  <filter-type>blue_stole</filter-type>
  <id type="integer">1552</id>
  <monthly-archive-id type="integer">179</monthly-archive-id>
  <pdf-digest nil="true"></pdf-digest>
  <permalink nil="true"></permalink>
  <published-at type="datetime">2009-07-16T17:34:00+00:00</published-at>
  <secret>3b7807e9-6db4-4b64-9a59-2ee9c2e3552e</secret>
  <title>Gem&#12398;&#20195;&#12431;&#12426;&#12395;GitHub&#12363;&#12425;&#30452;&#25509;require&#12377;&#12427;&#26041;&#27861;</title>
  <updated-at type="datetime">2009-07-16T18:14:01+00:00</updated-at>
  <user-id type="integer">1</user-id>
</article>
