aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/dependency.rb
diff options
context:
space:
mode:
authorJack Nagel2014-02-27 14:22:43 -0600
committerJack Nagel2014-02-27 14:22:43 -0600
commit1981e78eb2fe7231c999edf86c862597320ec5fe (patch)
tree15dfee9382d1a31f228a8635c3bbb73813d3e039 /Library/Homebrew/dependency.rb
parent793d6de6c3211ffea112770081e788e760806366 (diff)
downloadbrew-1981e78eb2fe7231c999edf86c862597320ec5fe.tar.bz2
Eliminate mutation of Dependency objects
Diffstat (limited to 'Library/Homebrew/dependency.rb')
-rw-r--r--Library/Homebrew/dependency.rb19
1 files changed, 8 insertions, 11 deletions
diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb
index 02d981b01..f2da14a06 100644
--- a/Library/Homebrew/dependency.rb
+++ b/Library/Homebrew/dependency.rb
@@ -4,12 +4,15 @@ require 'dependable'
class Dependency
include Dependable
- attr_reader :name, :tags
- attr_accessor :env_proc, :option_name
+ attr_reader :name, :tags, :env_proc, :option_name
- def initialize(name, tags=[])
- @name = @option_name = name
+ DEFAULT_ENV_PROC = proc {}
+
+ def initialize(name, tags=[], env_proc=DEFAULT_ENV_PROC, option_name=name)
+ @name = name
@tags = tags
+ @env_proc = env_proc
+ @option_name = option_name
end
def to_s
@@ -47,10 +50,6 @@ class Dependency
missing
end
- def universal!
- tags << 'universal' if to_formula.build.has_option? 'universal'
- end
-
def modify_build_environment
env_proc.call unless env_proc.nil?
end
@@ -127,9 +126,7 @@ class Dependency
deps.uniq.map do |dep|
tags = grouped.fetch(dep.name).map(&:tags).flatten.uniq
- merged_dep = dep.class.new(dep.name, tags)
- merged_dep.env_proc = dep.env_proc
- merged_dep
+ dep.class.new(dep.name, tags, dep.env_proc)
end
end
end