From 22a3e838ff4f86927b2fc1a8671b96e9bfd8d3d3 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sun, 10 Aug 2014 21:45:23 -0500 Subject: Handle legacy options in the method_added hook We only need to process the legacy options at load time, not each time the class is instantiated, and only when there is an options method defined. --- Library/Homebrew/formula.rb | 12 ++++++++---- Library/Homebrew/software_spec.rb | 4 ---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 7b591066c..78d3a568e 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -37,7 +37,6 @@ class Formula @active_spec = determine_active_spec(spec) validate_attributes :url, :name, :version - active_spec.add_legacy_options(options) @pkg_version = PkgVersion.new(version, revision) @pin = FormulaPin.new(self) end @@ -213,9 +212,6 @@ class Formula # tell the user about any caveats regarding this package, return a string def caveats; nil end - # any e.g. configure options for this package - def options; [] end - # Deprecated DATA = :DATA def patches; {} end @@ -592,6 +588,14 @@ class Formula raise "You cannot override Formula#brew in class #{name}" when :test @test_defined = true + when :options + instance = allocate + + specs.each do |spec| + instance.options.each do |opt, desc| + spec.options << Option.new(opt[/^--(.+)$/, 1], desc) + end + end end end diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 867d10393..c595a4596 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -127,10 +127,6 @@ class SoftwareSpec options << Option.new("without-#{name}", "Build without #{name} support") end end - - def add_legacy_options(list) - list.each { |opt, desc| options << Option.new(opt[/^--(.+)$/, 1], desc) } - end end class HeadSoftwareSpec < SoftwareSpec -- cgit v1.2.3