use Module#const_get instead of eval

* may be a problem if the constant is scoped (like A::B), but this is not the case
  (const.split('::').inject(Object) { |c, part| c.const_get part } would solve that)
* this was noticed in a comment of 9afc85ad but it has disappeared

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
eregon 2011-03-20 22:37:25 +01:00 committed by Adam Vandenberg
parent aefb144048
commit b6506fb4ea
2 changed files with 2 additions and 3 deletions

View File

@ -378,7 +378,7 @@ class Formula
begin begin
klass_name = self.class_s(name) klass_name = self.class_s(name)
klass = eval(klass_name) klass = Object.const_get klass_name
rescue NameError rescue NameError
# TODO really this text should be encoded into the exception # TODO really this text should be encoded into the exception
# and only shown if the UI deems it correct to show it # and only shown if the UI deems it correct to show it

View File

@ -71,10 +71,9 @@ begin
# Add example external commands to PATH before checking. # Add example external commands to PATH before checking.
ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/examples" ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/examples"
if system "/usr/bin/which -s brew-#{cmd}" if system "/usr/bin/which -s brew-#{cmd}"
%w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e| %w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e|
ENV["HOMEBREW_#{e}"] = eval "HOMEBREW_#{e}" ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}"
end end
exec "brew-#{cmd}", *ARGV exec "brew-#{cmd}", *ARGV
elsif require? `/usr/bin/which brew-#{cmd}.rb` elsif require? `/usr/bin/which brew-#{cmd}.rb`