aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/formula.rb12
-rw-r--r--Library/Homebrew/formula_installer.rb7
-rw-r--r--Library/Homebrew/test/test_formula.rb6
-rw-r--r--Library/Homebrew/test/test_formula_spec_selection.rb123
4 files changed, 72 insertions, 76 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 377888812..e28a27953 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -65,6 +65,18 @@ class Formula
end
end
+ def stable?
+ active_spec == stable
+ end
+
+ def devel?
+ active_spec == devel
+ end
+
+ def head?
+ active_spec == head
+ end
+
def bottle
Bottle.new(self, active_spec.bottle_specification) if active_spec.bottled?
end
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 9b2099430..6a2c27a35 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -437,9 +437,10 @@ class FormulaInstaller
args << "--cc=#{ARGV.cc}" if ARGV.cc
args << "--env=#{ARGV.env}" if ARGV.env
- case formula.active_spec
- when formula.head then args << "--HEAD"
- when formula.devel then args << "--devel"
+ if formula.head?
+ args << "--HEAD"
+ elsif formula.devel?
+ args << "--devel"
end
formula.options.each do |opt|
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index 635b4c032..956729e4e 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -91,7 +91,7 @@ class FormulaTests < Homebrew::TestCase
f.rack.rmtree
end
- def test_installed_prefix_head_active_spec
+ def test_installed_prefix_head
f = formula("test", Pathname.new(__FILE__).expand_path, :head) do
head 'foo'
devel do
@@ -103,7 +103,7 @@ class FormulaTests < Homebrew::TestCase
assert_equal prefix, f.installed_prefix
end
- def test_installed_prefix_devel_active_spec
+ def test_installed_prefix_devel
f = formula("test", Pathname.new(__FILE__).expand_path, :devel) do
head 'foo'
devel do
@@ -171,7 +171,7 @@ class FormulaTests < Homebrew::TestCase
assert_equal 'http://example.com', f.homepage
assert_version_equal '0.1', f.version
- assert_equal f.stable, f.active_spec
+ assert_predicate f, :stable?
assert_instance_of SoftwareSpec, f.stable
assert_instance_of SoftwareSpec, f.devel
diff --git a/Library/Homebrew/test/test_formula_spec_selection.rb b/Library/Homebrew/test/test_formula_spec_selection.rb
index aeb55fc1a..12b290b1e 100644
--- a/Library/Homebrew/test/test_formula_spec_selection.rb
+++ b/Library/Homebrew/test/test_formula_spec_selection.rb
@@ -2,115 +2,98 @@ require 'testing_env'
require 'formula'
class FormulaSpecSelectionTests < Homebrew::TestCase
- def assert_spec_selected(spec)
- assert_equal @_f.send(spec), @_f.active_spec
- end
-
- def assert_spec_unset(spec)
- assert_nil @_f.send(spec)
- end
-
def test_selects_stable_by_default
- formula do
- url 'foo-1.0'
- devel { url 'foo-1.1a' }
- head 'foo'
- end
+ f = formula {
+ url "foo-1.0"
+ devel { url "foo-1.1a" }
+ head "foo"
+ }
- assert_spec_selected :stable
+ assert_predicate f, :stable?
end
def test_selects_stable_when_exclusive
- formula do
- url 'foo-1.0'
- end
-
- assert_spec_selected :stable
+ f = formula { url "foo-1.0" }
+ assert_predicate f, :stable?
end
def test_selects_devel_before_head
- formula do
- devel { url 'foo-1.1a' }
- head 'foo'
- end
+ f = formula {
+ devel { url "foo-1.1a" }
+ head "foo"
+ }
- assert_spec_selected :devel
+ assert_predicate f, :devel?
end
def test_selects_devel_when_exclusive
- formula do
- devel { url 'foo-1.1a' }
- end
-
- assert_spec_selected :devel
+ f = formula { devel { url "foo-1.1a" } }
+ assert_predicate f, :devel?
end
def test_selects_head_when_exclusive
- formula do
- head 'foo'
- end
-
- assert_spec_selected :head
+ f = formula { head "foo" }
+ assert_predicate f, :head?
end
def test_incomplete_spec_not_selected
- formula do
+ f = formula {
sha1 TEST_SHA1
- version '1.0'
- head 'foo'
- end
+ version "1.0"
+ head "foo"
+ }
- assert_spec_selected :head
+ assert_predicate f, :head?
end
def test_incomplete_stable_not_set
- formula do
+ f = formula {
sha1 TEST_SHA1
- devel { url 'foo-1.1a' }
- head 'foo'
- end
+ devel { url "foo-1.1a" }
+ head "foo"
+ }
- assert_spec_unset :stable
- assert_spec_selected :devel
+ assert_nil f.stable
+ assert_predicate f, :devel?
end
def test_selects_head_when_requested
- formula("test", Pathname.new(__FILE__).expand_path, :head) do
- url 'foo-1.0'
- devel { url 'foo-1.1a' }
- head 'foo'
- end
+ f = formula("test", Pathname.new(__FILE__).expand_path, :head) {
+ url "foo-1.0"
+ devel { url "foo-1.1a" }
+ head "foo"
+ }
- assert_spec_selected :head
+ assert_predicate f, :head?
end
def test_selects_devel_when_requested
- formula("test", Pathname.new(__FILE__).expand_path, :devel) do
- url 'foo-1.0'
- devel { url 'foo-1.1a' }
- head 'foo'
- end
+ f = formula("test", Pathname.new(__FILE__).expand_path, :devel) {
+ url "foo-1.0"
+ devel { url "foo-1.1a" }
+ head "foo"
+ }
- assert_spec_selected :devel
+ assert_predicate f, :devel?
end
def test_incomplete_devel_not_set
- formula do
- url 'foo-1.0'
- devel { version '1.1a' }
- head 'foo'
- end
-
- assert_spec_unset :devel
- assert_spec_selected :stable
+ f = formula {
+ url "foo-1.0"
+ devel { version "1.1a" }
+ head "foo"
+ }
+
+ assert_nil f.devel
+ assert_predicate f, :stable?
end
def test_does_not_raise_for_missing_spec
- formula("test", Pathname.new(__FILE__).expand_path, :devel) do
- url 'foo-1.0'
- head 'foo'
- end
+ f = formula("test", Pathname.new(__FILE__).expand_path, :devel) {
+ url "foo-1.0"
+ head "foo"
+ }
- assert_spec_selected :stable
+ assert_predicate f, :stable?
end
end