From bd4aaac96b1f08d59a8e208095ac56ff446608df Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Tue, 9 Apr 2013 19:40:08 -0500 Subject: [PATCH] Check existence rather than rescue exceptions --- Library/Homebrew/formula.rb | 2 +- Library/Homebrew/test/test_formula.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index c994202e3e..a6305eaaff 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -80,7 +80,7 @@ class Formula # if the dir is there, but it's empty we consider it not installed def installed? - installed_prefix.children.length > 0 rescue false + (dir = installed_prefix).directory? && dir.children.length > 0 end def pinable? diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb index 918ff714fd..bdeb398d8d 100644 --- a/Library/Homebrew/test/test_formula.rb +++ b/Library/Homebrew/test/test_formula.rb @@ -14,6 +14,22 @@ class FormulaTests < Test::Unit::TestCase assert_kind_of Pathname, f.prefix end + def test_installed? + f = TestBall.new + f.stubs(:installed_prefix).returns(stub(:directory? => false)) + assert !f.installed? + + f.stubs(:installed_prefix).returns( + stub(:directory? => true, :children => []) + ) + assert !f.installed? + + f.stubs(:installed_prefix).returns( + stub(:directory? => true, :children => [stub]) + ) + assert f.installed? + end + def test_class_naming assert_equal 'ShellFm', Formula.class_s('shell.fm') assert_equal 'Fooxx', Formula.class_s('foo++')