Sha256: f5bc242eb27124494c5951d10867e48e943b334fd4c149dfa3576e03e61b2667

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

module Debugger  
  class LocalInterface
    def read_command(prompt)
      readline(prompt, true)
    end
    
    def confirm(prompt)
      readline(prompt, false)
    end
    
    def print(*args)
      STDOUT.printf(*args)
    end
    
    def close
    end
    
    private
    
    begin
      require 'readline'
      def readline(prompt, hist)
        Readline::readline(prompt, hist)
      end
    rescue LoadError
      def readline(prompt, hist)
        STDOUT.print prompt
        STDOUT.flush
        line = STDIN.gets
        exit unless line
        line.chomp!
        line
      end
      USE_READLINE = false
    end
  end

  class RemoteInterface
    def initialize(socket)
      @socket = socket
    end
    
    def read_command(prompt)
      send_command "PROMPT #{prompt}"
    end
    
    def confirm(prompt)
      send_command "CONFIRM #{prompt}"
    end

    def print(*args)
      @socket.printf(*args)
    end
    
    def close
      @socket.close
    rescue Exception
    end
    
    private
    
    def send_command(msg)
      @socket.puts msg
      result = @socket.gets
      raise IOError unless result
      result.chomp
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-debug-0.3-mswin32 lib/ruby-debug/interface.rb
ruby-debug-0.2-mswin32 lib/ruby-debug/interface.rb
ruby-debug-0.3 lib/ruby-debug/interface.rb
ruby-debug-0.2 lib/ruby-debug/interface.rb