ruby-changes:4007
From: ko1@a...
Date: Sat, 16 Feb 2008 11:46:42 +0900 (JST)
Subject: [ruby-changes:4007] akr - Ruby:r15497 (trunk): * lib/require_relative.rb: check require_relative call in eval.
akr 2008-02-16 11:46:27 +0900 (Sat, 16 Feb 2008)
New Revision: 15497
Modified files:
trunk/ChangeLog
trunk/lib/require_relative.rb
Log:
* lib/require_relative.rb: check require_relative call in eval.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15497&r2=15496&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/require_relative.rb?r1=15497&r2=15496&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15496)
+++ ChangeLog (revision 15497)
@@ -1,3 +1,7 @@
+Sat Feb 16 11:45:31 2008 Tanaka Akira <akr@f...>
+
+ * lib/require_relative.rb: check require_relative call in eval.
+
Sat Feb 16 08:00:01 2008 NARUSE, Yui <naruse@r...>
* ruby.c (process_options): set default_external before loading
Index: lib/require_relative.rb
===================================================================
--- lib/require_relative.rb (revision 15496)
+++ lib/require_relative.rb (revision 15497)
@@ -1,6 +1,11 @@
def require_relative(relative_feature)
- /:/ =~ caller.first
- absolute_feature = File.expand_path(File.join(File.dirname($`), relative_feature))
+ c = caller.first
+ e = c.rindex(/:\d+:in /)
+ file = $`
+ if /\A\((.*)\)/ =~ file # eval, etc.
+ raise LoadError, "require_relative is called in #{$1}"
+ end
+ absolute_feature = File.expand_path(File.join(File.dirname(file), relative_feature))
require absolute_feature
end
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/