Fix up Rubinius specific library specs.
[rbx.git] / lib / quickgem.rb
blobcdaca98dac984ff4217514db305c9025c805d699
1 module QuickGem
2   # there can be more than one path
3   PATHS = `ruby -rubygems -e "puts Gem.path"`.split
5   @gems = nil
6   def self.find_gems
7     @gems = []
8     PATHS.each do |path|
9       path = path.strip + "/gems"
10       Dir.foreach(path) do |name|
11         @gems << "#{path}/#{name}"
12       end
13     end
14     return @gems
15   end
17   def self.gems
18     @gems ? @gems : find_gems
19   end
21   def self.load_gem(name)
22     possible = gems.find_all { |g| /#{name}-.*/.match(g) }.sort
23     if possible.empty?
24       raise LoadError, "unknown gem '#{name}'"
25     end
27     $:.unshift "#{possible}/lib"
28     if $DEBUG
29       STDERR.puts "[Loaded gem #{name} with quickgem]"
30     end
31   end
32 end
34 module Kernel
35   def gem(name, *rest)
36     QuickGem.load_gem(name)
37   end
38 end