Change soft-fail to use the config, rather than env
[rbx.git] / lib / irb / ext / use-loader.rb
blob3b18e1b67f2c916f162042daa5e8bb9cb04c10f0
2 #   use-loader.rb - 
3 #       $Release Version: 0.9.5$
4 #       $Revision: 11708 $
5 #       $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
6 #       by Keiju ISHITSUKA(keiju@ruby-lang.org)
8 # --
10 #   
13 require "irb/cmd/load"
14 require "irb/ext/loader"
16 class Object
17   alias __original__load__IRB_use_loader__ load
18   alias __original__require__IRB_use_loader__ require
19 end
21 module IRB
22   module ExtendCommandBundle
23     def irb_load(*opts, &b)
24       ExtendCommand::Load.execute(irb_context, *opts, &b)
25     end
26     def irb_require(*opts, &b)
27       ExtendCommand::Require.execute(irb_context, *opts, &b)
28     end
29   end
31   class Context
33     IRB.conf[:USE_LOADER] = false
34     
35     def use_loader
36       IRB.conf[:USE_LOADER]
37     end
39     alias use_loader? use_loader
41     def use_loader=(opt)
43       if IRB.conf[:USE_LOADER] != opt
44         IRB.conf[:USE_LOADER] = opt
45         if opt
46           if !$".include?("irb/cmd/load")
47           end
48           (class<<@workspace.main;self;end).instance_eval {
49             alias_method :load, :irb_load
50             alias_method :require, :irb_require
51           }
52         else
53           (class<<@workspace.main;self;end).instance_eval {
54             alias_method :load, :__original__load__IRB_use_loader__
55             alias_method :require, :__original__require__IRB_use_loader__
56           }
57         end
58       end
59       print "Switch to load/require#{unless use_loader; ' non';end} trace mode.\n" if verbose?
60       opt
61     end
62   end
63 end