Class: Gisele::VM::Console
Defined Under Namespace
Modules: Handler
Instance Method Summary
collapse
Methods inherited from Component
#connect, #connected!, #connected?, #disconnect, #initialize, #registered, #registered!, #registered?, #unregistered, #vm
Instance Method Details
#enter_heartbeat ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/gisele/vm/console.rb', line 23
def enter_heartbeat
EM.watch($stdin, Handler){|c|
c.interactive = self
c.notify_readable = true
}
prompt
end
|
#list_action(lispy = Alf.lispy) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/gisele/vm/console.rb', line 35
def list_action(lispy = Alf.lispy)
rel = vm.progs
rel = lispy.extend(rel, :waitlist => lambda{ waitlist.keys })
rel = lispy.group(rel, [:root], :progs, :allbut => true)
puts rel.to_relation
end
|
#new_action(args) ⇒ Object
42
43
44
|
# File 'lib/gisele/vm/console.rb', line 42
def new_action(args)
vm.start(:main, [ args.strip.to_sym ])
end
|
#prompt ⇒ Object
31
32
33
|
# File 'lib/gisele/vm/console.rb', line 31
def prompt
$stdout << "\n? Please choose an action:(list, new, resume or quit)\ngisele-vm> "
end
|
#resume_action(args) ⇒ Object
46
47
48
49
50
|
# File 'lib/gisele/vm/console.rb', line 46
def resume_action(args)
puid, *input = args.split(/\s+/)
input = input.map{|x| Bytecode::Grammar.parse(x, :root => :arg).value}
vm.resume(puid, input)
end
|
#stop_action ⇒ Object
52
53
54
|
# File 'lib/gisele/vm/console.rb', line 52
def stop_action
vm.stop
end
|