diff options
| author | Jack Nagel | 2014-08-07 10:45:32 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-08-07 10:45:32 -0500 |
| commit | d86f5f717001ca5d1340168b44df6102e74a45c1 (patch) | |
| tree | bcb340fe68e1ca3e92a4619255a501a0420ae712 | |
| parent | a68804192aff87c130df0820592f7b393193bd6c (diff) | |
| download | homebrew-d86f5f717001ca5d1340168b44df6102e74a45c1.tar.bz2 | |
Move management of options collection to the spec object
| -rw-r--r-- | Library/Homebrew/build_options.rb | 11 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 15 | ||||
| -rw-r--r-- | Library/Homebrew/software_spec.rb | 14 |
3 files changed, 19 insertions, 21 deletions
diff --git a/Library/Homebrew/build_options.rb b/Library/Homebrew/build_options.rb index 8ea321772..28fbb959c 100644 --- a/Library/Homebrew/build_options.rb +++ b/Library/Homebrew/build_options.rb @@ -20,17 +20,6 @@ class BuildOptions @args = other.args.dup end - def add(name, description) - 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 "" - end - - @options << Option.new(name, description) - end - def empty? @options.empty? end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ab5b00fa2..dc9b680f2 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -16,7 +16,7 @@ class Formula include Utils::Inreplace extend Enumerable - attr_reader :name, :path, :homepage, :build + attr_reader :name, :path, :homepage attr_reader :stable, :devel, :head, :active_spec attr_reader :pkg_version, :revision @@ -38,9 +38,8 @@ class Formula @active_spec = determine_active_spec(spec) validate_attributes :url, :name, :version - @build = determine_build_options + active_spec.add_legacy_options(options) @pkg_version = PkgVersion.new(version, revision) - @pin = FormulaPin.new(self) end @@ -65,12 +64,6 @@ class Formula end end - def determine_build_options - build = active_spec.build - options.each { |opt, desc| build.add(opt, desc) } - build - end - def bottle Bottle.new(self, active_spec.bottle_specification) if active_spec.bottled? end @@ -110,6 +103,10 @@ class Formula active_spec.option_defined?(name) end + def build + active_spec.build + end + # if the dir is there, but it's empty we consider it not installed def installed? (dir = installed_prefix).directory? && dir.children.length > 0 diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index fe0277adb..390f31e17 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -80,7 +80,15 @@ class SoftwareSpec 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?("-") - build.add(name, description) + + 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 "" + end + + options << Option.new(name, description) end def depends_on spec @@ -115,6 +123,10 @@ 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 |
