<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,23 @@
 require 'autotest'
 $LOAD_PATH.unshift &quot;test&quot;, &quot;test/autotest&quot;
 # Make sure autotest groks our directory structure to map tests to files
-Autotest.add_discovery do
- [&quot;railsplugin&quot;]
+p 'here!'
+
+Autotest.add_hook :initialize do |at|
+  at.add_mapping(/^lib\/(.*)\.rb$/) { |filename, m|
+    file = File.basename(filename).gsub(&quot;_&quot;, &quot;_?&quot;).gsub(&quot;.rb&quot;, &quot;&quot;)
+    foo = at.files_matching %r%^test/.*#{file}_test.rb$%
+    foo
+  }
+  
+  at.add_mapping(/^test\/.*_test\.rb$/) { |filename, _|
+    filename
+  }
+  
+  # 
+  # 
+  # at.add_mapping(%r%^plugins/acts_as_currency/lib/.*\.rb$%) {
+  #   at.files_matching %r%^spec/models/product_spec\.rb$% +
+  #   at.files_matching %r%^plugins/acts_as_currency/spec/.*_spec\.rb$%
+  # }
 end
\ No newline at end of file</diff>
      <filename>.autotest</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,7 @@
+== 0.0.5
+
+* Handle the case where we don't have any Rails gems installed at all by raising early to prevent weirdness later on (Evan Weaver)
+
 == 0.0.4
 
 * Change the all task so that the build will run through all rails versions, even if one of them fails, but at the end</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ files.each do |file|
 end
 
 module MultiRails
-  VERSION = '0.0.4'
+  VERSION = '0.0.5'
   BAR = &quot;=&quot; * 80 # BEST CONSTANT EVAH
   
   def self.gem_and_require_rails</diff>
      <filename>lib/multi_rails.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ module MultiRails
     # Require and gem rails
     # Will use a default version if none is supplied
     def self.gem_and_require_rails(rails_version = nil)
+      verify_rails_installed
       rails_version = MultiRails::Config.version_lookup(rails_version)
       Loader.new(rails_version).gem_and_require_rails
     end
@@ -31,6 +32,11 @@ module MultiRails
       all_rails_versions.sort.last
     end
     
+    # Verify we have at least one Rails gem installed, otherwise fail early
+    def self.verify_rails_installed
+      raise MultiRailsError, &quot;No Rails gems installed!&quot; if Gem::cache.find_name(&quot;rails&quot;).empty? 
+    end
+    
     # A version of the loader is created to gem and require one version of Rails
     def initialize(version)
       @version = version</diff>
      <filename>lib/multi_rails/loader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,12 +5,8 @@ class Autotest::Railsplugin &lt; Autotest
     @exceptions = /\/\./
     @test_mappings = {
       /^lib\/(.*)\.rb$/ =&gt; proc { |filename, m|
-        # p &quot;match #{m[1]}&quot;
         file = File.basename(filename).gsub(&quot;_&quot;, &quot;_?&quot;).gsub(&quot;.rb&quot;, &quot;&quot;)
         foo = files_matching %r%^test/.*#{file}_test.rb$%
-        # p &quot;the file: #{file}&quot;
-        # p &quot;the regex: #{files_matching %r%^test/.*#{file}_test.rb$%}&quot;
-        # p &quot;files_matching: #{foo}&quot;
         foo
       },
       /^test\/.*_test\.rb$/ =&gt; proc { |filename, _|</diff>
      <filename>test/autotest/railsplugin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,19 @@
 require File.expand_path(File.join(File.dirname(__FILE__), &quot;multi_rails_test_helper&quot;))
 
-describe &quot;loader&quot; do
+describe &quot;Loader with no Rails gem installed&quot; do
+
+  it &quot;should fail fast if we don't have any rails gems installed&quot; do
+    Gem::cache.expects(:find_name).with(&quot;rails&quot;).returns([])
+    lambda { MultiRails::Loader.gem_and_require_rails }.should.raise(MultiRailsError).message.should == &quot;No Rails gems installed!&quot;
+  end
+  
+end
+describe &quot;Loader with at least one Rails gem installed&quot; do
   
   setup do
     never_really_require_rails
     never_puts
+    MultiRails::Loader.stubs(:verify_rails_installed).returns(nil)
   end
   
   it &quot;should fall back to a default version to try&quot; do
@@ -20,6 +29,7 @@ describe &quot;loader&quot; do
   
   it &quot;should gem the specified version&quot; do
     MultiRails::Loader.any_instance.stubs(:display_rails_gem_used)
+    MultiRails::Config.stubs(:named_version_lookup).with(&quot;1.2.5&quot;).returns(&quot;1.2.5&quot;)
     stub_rails_requires
     MultiRails::Loader.any_instance.expects(:gem).with(&quot;rails&quot;, &quot;1.2.5&quot;).returns(true)
     MultiRails::Loader.gem_and_require_rails(&quot;1.2.5&quot;)</diff>
      <filename>test/loader_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b8c69d474e4af3118c56f22d427760e73803bf9f</id>
    </parent>
  </parents>
  <author>
    <name>rob</name>
    <email>rob@fe6a39be-99a9-dc11-9a70-001c23e17821</email>
  </author>
  <url>http://github.com/relevance/multi_rails/commit/e361bafccb68eff23cb695ef2ae2350619d4b25f</url>
  <id>e361bafccb68eff23cb695ef2ae2350619d4b25f</id>
  <committed-date>2008-01-27T01:40:51-08:00</committed-date>
  <authored-date>2008-01-27T01:40:51-08:00</authored-date>
  <message>handle the case where dont have any rails gem installed, and also fix autotest for latest config style

git-svn-id: https://opensource.thinkrelevance.com/svn/multi_rails/trunk@112 fe6a39be-99a9-dc11-9a70-001c23e17821</message>
  <tree>4722f84244c8b8c1c6f24b556735bfa8813c4ccc</tree>
  <committer>
    <name>rob</name>
    <email>rob@fe6a39be-99a9-dc11-9a70-001c23e17821</email>
  </committer>
</commit>
