Replace the build object rather than mutate it

This commit is contained in:
Jack Nagel 2014-08-11 17:48:30 -05:00
parent 0b468c528c
commit b7b8b88cea
3 changed files with 7 additions and 15 deletions

View File

@ -1,7 +1,6 @@
require 'options'
class BuildOptions
attr_accessor :args
attr_accessor :universal
def initialize(args, options)
@ -15,7 +14,7 @@ class BuildOptions
end
def include? name
args.include? '--' + name
@args.include?("--#{name}")
end
def with? val

View File

@ -29,10 +29,9 @@ class Dependency
end
def to_formula
f = Formulary.factory(name)
# Add this dependency's options to the formula's build args
f.build.args = f.build.args.concat(options)
f
formula = Formulary.factory(name)
formula.build = BuildOptions.new(options, formula.options)
formula
end
def installed?

View File

@ -303,15 +303,9 @@ class FormulaInstaller
end
def effective_build_options_for(dependent, inherited_options=[])
if dependent == f
build = dependent.build.dup
build.args |= options
build
else
build = dependent.build.dup
build.args |= inherited_options
build
end
args = dependent.build.used_options
args |= dependent == f ? options : inherited_options
BuildOptions.new(args, dependent.options)
end
def inherited_options_for(dep)