summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/lib/irb/cmd/load.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/lib/irb/cmd/load.rb')
-rw-r--r--ruby_1_8_5/lib/irb/cmd/load.rb67
1 files changed, 67 insertions, 0 deletions
diff --git a/ruby_1_8_5/lib/irb/cmd/load.rb b/ruby_1_8_5/lib/irb/cmd/load.rb
new file mode 100644
index 0000000000..aec5d8a391
--- /dev/null
+++ b/ruby_1_8_5/lib/irb/cmd/load.rb
@@ -0,0 +1,67 @@
+#
+# load.rb -
+# $Release Version: 0.9.5$
+# $Revision: 1.1.2.1 $
+# $Date: 2005/04/19 19:24:58 $
+# by Keiju ISHITSUKA(keiju@ruby-lang.org)
+#
+# --
+#
+#
+#
+
+require "irb/cmd/nop.rb"
+require "irb/ext/loader"
+
+module IRB
+ module ExtendCommand
+ class Load<Nop
+ include IrbLoader
+
+ def execute(file_name, priv = nil)
+# return ruby_load(file_name) unless IRB.conf[:USE_LOADER]
+ return irb_load(file_name, priv)
+ end
+ end
+
+ class Require<Nop
+ include IrbLoader
+
+ def execute(file_name)
+# return ruby_require(file_name) unless IRB.conf[:USE_LOADER]
+
+ rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
+ return false if $".find{|f| f =~ rex}
+
+ case file_name
+ when /\.rb$/
+ begin
+ if irb_load(file_name)
+ $".push file_name
+ return true
+ end
+ rescue LoadError
+ end
+ when /\.(so|o|sl)$/
+ return ruby_require(file_name)
+ end
+
+ begin
+ irb_load(f = file_name + ".rb")
+ $".push f
+ return true
+ rescue LoadError
+ return ruby_require(file_name)
+ end
+ end
+ end
+
+ class Source<Nop
+ include IrbLoader
+ def execute(file_name)
+ source_file(file_name)
+ end
+ end
+ end
+
+end