diff options
| author | Jack Nagel | 2013-04-01 12:05:57 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-04-01 16:17:35 -0500 |
| commit | 1b0f0824fe50c54f03649423173a67f70f94a7a0 (patch) | |
| tree | 566fc700236bdde8517b4b983d0102364830a65d /Library | |
| parent | 462a41887823bbf72996c2ce324c5db30f77e89a (diff) | |
| download | brew-1b0f0824fe50c54f03649423173a67f70f94a7a0.tar.bz2 | |
Requirement: env DSL is evaluated in context of self, not ENV
This was meant to support:
env do |req|
append_path 'PATH', req.some_method
...
end
i.e., the block was evaluated in the context of ENV. But it turned out
to be not so useful after all, so I'm ripping it out before something
actually depends on it.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/build_environment.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/extend/object.rb | 15 | ||||
| -rw-r--r-- | Library/Homebrew/global.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/requirement.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/requirements.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_build_environment.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_object.rb | 20 |
7 files changed, 7 insertions, 43 deletions
diff --git a/Library/Homebrew/build_environment.rb b/Library/Homebrew/build_environment.rb index c10c9fb1c..e6dbf9734 100644 --- a/Library/Homebrew/build_environment.rb +++ b/Library/Homebrew/build_environment.rb @@ -22,8 +22,8 @@ class BuildEnvironment @settings.include? :userpaths end - def modify_build_environment(context=nil) - @procs.each { |p| ENV.instance_exec(context, &p) } + def modify_build_environment(receiver) + @procs.each { |p| receiver.instance_eval(&p) } end def _dump(*) diff --git a/Library/Homebrew/extend/object.rb b/Library/Homebrew/extend/object.rb deleted file mode 100644 index 8ffe5dc90..000000000 --- a/Library/Homebrew/extend/object.rb +++ /dev/null @@ -1,15 +0,0 @@ -class Object - def instance_exec(*args, &block) - method_name = :__temp_instance_exec_method - singleton_class = (class << self; self; end) - singleton_class.class_eval do - define_method(method_name, &block) - end - - send(method_name, *args) - ensure - singleton_class.class_eval do - remove_method(method_name) if method_defined?(method_name) - end - end unless method_defined?(:instance_exec) -end diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 2ae186c82..13c52d02b 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -3,7 +3,6 @@ require 'extend/pathname' require 'extend/ARGV' require 'extend/string' require 'extend/symbol' -require 'extend/object' require 'utils' require 'exceptions' require 'set' diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb index 89423c78b..42e4467bc 100644 --- a/Library/Homebrew/requirement.rb +++ b/Library/Homebrew/requirement.rb @@ -68,7 +68,7 @@ class Requirement when Pathname self.class.env do unless ENV["PATH"].split(":").include?(o.parent.to_s) - append("PATH", o.parent, ":") + ENV.append("PATH", o.parent, ":") end end end diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index 34273a0f3..881ac4ad1 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -179,11 +179,11 @@ class MPIDependency < Requirement @unknown_langs.empty? and @non_functional.empty? end - env do |req| + env do # Set environment variables to help configure scripts find MPI compilers. # Variable names taken from: # http://www.gnu.org/software/autoconf-archive/ax_mpi.html - req.lang_list.each do |lang| + @lang_list.each do |lang| compiler = 'mpi' + lang.to_s mpi_path = which compiler diff --git a/Library/Homebrew/test/test_build_environment.rb b/Library/Homebrew/test/test_build_environment.rb index 31d3cb1cb..2e1c6a602 100644 --- a/Library/Homebrew/test/test_build_environment.rb +++ b/Library/Homebrew/test/test_build_environment.rb @@ -23,7 +23,7 @@ class BuildEnvironmentTests < Test::Unit::TestCase def test_modify_build_environment @env << Proc.new { raise StandardError } assert_raises(StandardError) do - @env.modify_build_environment + @env.modify_build_environment(self) end end @@ -38,7 +38,7 @@ class BuildEnvironmentTests < Test::Unit::TestCase foo = mock("foo") @env << Proc.new { foo.some_message } foo.expects(:some_message) - @env.modify_build_environment + @env.modify_build_environment(self) end def test_env_block_with_argument diff --git a/Library/Homebrew/test/test_object.rb b/Library/Homebrew/test/test_object.rb deleted file mode 100644 index debdd6c42..000000000 --- a/Library/Homebrew/test/test_object.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'testing_env' -require 'extend/object' - -class InstanceExecTests < Test::Unit::TestCase - def test_evaluates_in_context_of_receiver - assert_equal 1, [1].instance_exec { first } - end - - def test_passes_arguments_to_block - assert_equal 2, [1].instance_exec(1) { |x| first + x } - end - - def test_does_not_persist_temporary_singleton_method - obj = Object.new - before = obj.methods - obj.instance_exec { methods } - after = obj.methods - assert_equal before, after - end -end |
