Permalink
Browse files

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 9afc85a but it has disappeared

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
  • Loading branch information...
1 parent aa6d7fc commit eb121eeabb78e190b29c5d15da37b157e4e805f6 @eregon eregon committed with adamv Mar 20, 2011
Showing with 2 additions and 3 deletions.
  1. +1 −1 Library/Homebrew/formula.rb
  2. +1 −2 bin/brew
View
2 Library/Homebrew/formula.rb
@@ -378,7 +378,7 @@ def self.factory name
begin
klass_name = self.class_s(name)
- klass = eval(klass_name)
+ klass = Object.const_get klass_name
rescue NameError
# TODO really this text should be encoded into the exception
# and only shown if the UI deems it correct to show it
View
3 bin/brew
@@ -71,10 +71,9 @@ begin
# Add example external commands to PATH before checking.
ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/examples"
-
if system "/usr/bin/which -s brew-#{cmd}"
%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
exec "brew-#{cmd}", *ARGV
elsif require? `/usr/bin/which brew-#{cmd}.rb`

0 comments on commit eb121ee

Please sign in to comment.