aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/software_spec.rb30
-rw-r--r--Library/Homebrew/test/test_software_spec.rb5
2 files changed, 17 insertions, 18 deletions
diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb
index 390f31e17..867d10393 100644
--- a/Library/Homebrew/software_spec.rb
+++ b/Library/Homebrew/software_spec.rb
@@ -11,6 +11,12 @@ require 'patch'
class SoftwareSpec
extend Forwardable
+ PREDEFINED_OPTIONS = {
+ :universal => Option.new("universal", "Build a universal binary"),
+ :cxx11 => Option.new("c++11", "Build using C++11 mode"),
+ "32-bit" => Option.new("32-bit", "Build 32-bit only"),
+ }
+
attr_reader :name, :owner
attr_reader :build, :resources, :patches, :options
attr_reader :dependency_collector
@@ -75,20 +81,18 @@ class SoftwareSpec
options.include?(name)
end
- def option name, description=nil
- name = 'c++11' if name == :cxx11
- name = name.to_s if Symbol === name
- raise ArgumentError, "option name is required" if name.empty?
- raise ArgumentError, "options should not start with dashes" if name.start_with?("-")
-
- description ||= case name
- when "universal" then "Build a universal binary"
- when "32-bit" then "Build 32-bit only"
- when "c++11" then "Build using C++11 mode"
- else ""
+ def option(name, description="")
+ opt = PREDEFINED_OPTIONS.fetch(name) do
+ if Symbol === name
+ opoo "Passing arbitrary symbols to `option` is deprecated: #{name.inspect}"
+ puts "Symbols are reserved for future use, please pass a string instead"
+ name = name.to_s
end
-
- options << Option.new(name, description)
+ raise ArgumentError, "option name is required" if name.empty?
+ raise ArgumentError, "options should not start with dashes" if name.start_with?("-")
+ Option.new(name, description)
+ end
+ options << opt
end
def depends_on spec
diff --git a/Library/Homebrew/test/test_software_spec.rb b/Library/Homebrew/test/test_software_spec.rb
index 702d2c581..1306a92b9 100644
--- a/Library/Homebrew/test/test_software_spec.rb
+++ b/Library/Homebrew/test/test_software_spec.rb
@@ -55,11 +55,6 @@ class SoftwareSpecTests < Homebrew::TestCase
assert_raises(ArgumentError) { @spec.option("") }
end
- def test_option_accepts_symbols
- @spec.option(:foo)
- assert @spec.option_defined?("foo")
- end
-
def test_cxx11_option_special_case
@spec.option(:cxx11)
assert @spec.option_defined?("c++11")