diff options
-rw-r--r-- | lib/puppet/util/autoload.rb | 7 | ||||
-rw-r--r-- | lib/puppet/util/autoload/file_cache.rb | 14 | ||||
-rwxr-xr-x | spec/unit/util/autoload.rb | 17 |
3 files changed, 6 insertions, 32 deletions
diff --git a/lib/puppet/util/autoload.rb b/lib/puppet/util/autoload.rb index 006554d5a..a1c44cdd6 100644 --- a/lib/puppet/util/autoload.rb +++ b/lib/puppet/util/autoload.rb @@ -74,8 +74,6 @@ class Puppet::Util::Autoload # Load a single plugin by name. We use 'load' here so we can reload a # given plugin. def load(name,env=nil) - return false if named_file_missing?(name) - path = name.to_s + ".rb" searchpath(env).each do |dir| @@ -90,11 +88,10 @@ class Puppet::Util::Autoload raise rescue Exception => detail puts detail.backtrace if Puppet[:trace] - warn "Could not autoload #{name}: #{detail}" - return named_file_is_missing(name) + raise Puppet::Error, "Could not autoload #{name}: #{detail}" end end - return named_file_is_missing(name) + false end # Mark the named object as loaded. Note that this supports unqualified diff --git a/lib/puppet/util/autoload/file_cache.rb b/lib/puppet/util/autoload/file_cache.rb index 4ad0c7f39..881e08637 100644 --- a/lib/puppet/util/autoload/file_cache.rb +++ b/lib/puppet/util/autoload/file_cache.rb @@ -73,20 +73,6 @@ module Puppet::Util::Autoload::FileCache missing_files[path] = Time.now end - def named_file_missing?(name) - @named_files ||= {} - if time = @named_files[name] and ! data_expired?(time) - return true - end - false - end - - def named_file_is_missing(name) - @named_files ||= {} - @named_files[name] = Time.now - false - end - private def cached_data?(path, type = nil) diff --git a/spec/unit/util/autoload.rb b/spec/unit/util/autoload.rb index 1b8866246..0f73a73d7 100755 --- a/spec/unit/util/autoload.rb +++ b/spec/unit/util/autoload.rb @@ -72,26 +72,17 @@ describe Puppet::Util::Autoload do end [RuntimeError, LoadError, SyntaxError].each do |error| - it "should not die an if a #{error.to_s} exception is thrown" do + it "should die with Puppet::Error if a #{error.to_s} exception is thrown" do @autoload.stubs(:file_exist?).returns true Kernel.expects(:load).raises error - @autoload.load("foo") + lambda { @autoload.load("foo") }.should raise_error(Puppet::Error) end end - it "should skip files that it knows are missing" do - @autoload.expects(:named_file_missing?).with("foo").returns true - @autoload.expects(:eachdir).never - - @autoload.load("foo") - end - - it "should register that files are missing if they cannot be found" do - @autoload.load("foo") - - @autoload.should be_named_file_missing("foo") + it "should not raise an error if the file is missing" do + @autoload.load("foo").should == false end it "should register loaded files with the main loaded file list so they are not reloaded by ruby" do |