aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/dependency.rb12
-rw-r--r--Library/Homebrew/dependency_collector.rb2
-rw-r--r--Library/Homebrew/test/testing_env.rb2
3 files changed, 16 insertions, 0 deletions
diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb
index f2da14a06..dd92cc4fc 100644
--- a/Library/Homebrew/dependency.rb
+++ b/Library/Homebrew/dependency.rb
@@ -131,3 +131,15 @@ class Dependency
end
end
end
+
+class TapDependency < Dependency
+ def initialize(name, tags=[], env_proc=DEFAULT_ENV_PROC, option_name=name)
+ super(name, tags, env_proc, name.split("/").last)
+ end
+
+ def installed?
+ super
+ rescue FormulaUnavailableError
+ false
+ end
+end
diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb
index 2b5cfc704..7982b841e 100644
--- a/Library/Homebrew/dependency_collector.rb
+++ b/Library/Homebrew/dependency_collector.rb
@@ -89,6 +89,8 @@ class DependencyCollector
Dependency.new(spec, tags)
elsif (tag = tags.first) && LANGUAGE_MODULES.include?(tag)
LanguageModuleDependency.new(tag, spec)
+ elsif HOMEBREW_TAP_FORMULA_REGEX === spec
+ TapDependency.new(spec, tags)
else
Dependency.new(spec, tags)
end
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index d77477bbc..fc5039491 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -27,6 +27,8 @@ HOMEBREW_WWW = 'http://example.com'
HOMEBREW_CURL_ARGS = '-fsLA'
HOMEBREW_VERSION = '0.9-test'
+HOMEBREW_TAP_FORMULA_REGEX = %r{^(\w+)/(\w+)/([^/]+)$}
+
RUBY_BIN = Pathname.new(RbConfig::CONFIG['bindir'])
RUBY_PATH = RUBY_BIN + RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']