class Redwood::ConsoleMode

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/sup/modes/console-mode.rb, line 71
def initialize
  super
  @console = Console.new self
  @binding = @console.instance_eval { binding }
end

Public Instance Methods

execute(cmd) click to toggle source
# File lib/sup/modes/console-mode.rb, line 77
def execute cmd
  begin
    self << ">> #{cmd}\n"
    ret = eval cmd, @binding
    self << "=> #{ret.pretty_inspect}\n"
  rescue Exception
    self << "#{$!.class}: #{$!.message}\n"
    clean_backtrace = []
    $!.backtrace.each { |l| break if l =~ /console-mode/; clean_backtrace << l }
    clean_backtrace.each { |l| self << "#{l}\n" }
  end
end
prompt() click to toggle source
# File lib/sup/modes/console-mode.rb, line 90
def prompt
  BufferManager.ask :console, ">> "
end
run() click to toggle source
# File lib/sup/modes/console-mode.rb, line 94
  def run
    self << <<EOS
Sup v#{VERSION} console session started.
Available extra commands: #{(@console.special_methods) * ", "}
Ctrl-G stops evaluation; 'e' restarts it.

EOS
    while true
      if(cmd = prompt)
        execute cmd
      else
        self << "Console session ended."
        break
      end
    end
  end