Sha256: 3f38374bc93a77ee459e262c17a150efe5bc672802f81ffe8ae80a539a7eb1d9
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
# # xmp.rb - irb version of gotoken xmp # $Release Version: 0.9$ # $Revision: 11708 $ # $Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $ # by Keiju ISHITSUKA(Nippon Rational Inc.) # # -- # # # require "irb" require "irb/frame" class XMP @RCS_ID='-$Id: xmp.rb 11708 2007-02-12 23:01:19Z shyouhei $-' def initialize(bind = nil) IRB.init_config(nil) #IRB.parse_opts #IRB.load_modules IRB.conf[:PROMPT_MODE] = :XMP bind = IRB::Frame.top(1) unless bind ws = IRB::WorkSpace.new(bind) @io = StringInputMethod.new @irb = IRB::Irb.new(ws, @io) @irb.context.ignore_sigint = false # IRB.conf[:IRB_RC].call(@irb.context) if IRB.conf[:IRB_RC] IRB.conf[:MAIN_CONTEXT] = @irb.context end def puts(exps) @io.puts exps if @irb.context.ignore_sigint begin trap_proc_b = trap("SIGINT"){@irb.signal_handle} catch(:IRB_EXIT) do @irb.eval_input end ensure trap("SIGINT", trap_proc_b) end else catch(:IRB_EXIT) do @irb.eval_input end end end class StringInputMethod < IRB::InputMethod def initialize super @exps = [] end def eof? @exps.empty? end def gets while l = @exps.shift next if /^\s+$/ =~ l l.concat "\n" print @prompt, l break end l end def puts(exps) @exps.concat exps.split(/\n/) end end end def xmp(exps, bind = nil) bind = IRB::Frame.top(1) unless bind xmp = XMP.new(bind) xmp.puts exps xmp end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubysl-irb-1.0.2 | lib/irb/xmp.rb |
rubysl-irb-1.0.1 | lib/irb/xmp.rb |
rubysl-irb-1.0.0 | lib/irb/xmp.rb |