From 1b0f0824fe50c54f03649423173a67f70f94a7a0 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 1 Apr 2013 12:05:57 -0500 Subject: [PATCH] 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. --- Library/Homebrew/build_environment.rb | 4 ++-- Library/Homebrew/extend/object.rb | 15 -------------- Library/Homebrew/global.rb | 1 - Library/Homebrew/requirement.rb | 2 +- Library/Homebrew/requirements.rb | 4 ++-- .../Homebrew/test/test_build_environment.rb | 4 ++-- Library/Homebrew/test/test_object.rb | 20 ------------------- 7 files changed, 7 insertions(+), 43 deletions(-) delete mode 100644 Library/Homebrew/extend/object.rb delete mode 100644 Library/Homebrew/test/test_object.rb diff --git a/Library/Homebrew/build_environment.rb b/Library/Homebrew/build_environment.rb index c10c9fb1c4..e6dbf9734a 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 8ffe5dc90d..0000000000 --- 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 2ae186c822..13c52d02b5 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 89423c78b2..42e4467bc5 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 34273a0f39..881ac4ad18 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 31d3cb1cb8..2e1c6a602a 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 debdd6c42c..0000000000 --- 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