diff options
| author | Jack Nagel | 2014-08-07 10:45:32 -0500 | 
|---|---|---|
| committer | Jack Nagel | 2014-08-07 10:45:32 -0500 | 
| commit | acf8f32a77859e94bca731a5ab7dbc2d3a77e3de (patch) | |
| tree | 5488db44fff86e544b5fa549f862adb2bcd52297 /Library | |
| parent | d86f5f717001ca5d1340168b44df6102e74a45c1 (diff) | |
| download | homebrew-acf8f32a77859e94bca731a5ab7dbc2d3a77e3de.tar.bz2 | |
Use predefined options for universal, cxx11, and 32-bit options
:universal and :cxx11 are now handled directly, so we don't need to
always convert symbols to strings in this method. Symbols should be
reserved for future use.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/software_spec.rb | 30 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_software_spec.rb | 5 | 
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") | 
