load parfait code over the net too
some very painful promise debugging solved weird string issue
This commit is contained in:
parent
0f7fb9e70f
commit
3681b4b5d7
@ -22,6 +22,7 @@ class SelectView < ElementView
|
|||||||
def draw
|
def draw
|
||||||
@element = div("h4", "Code") << (list = div("ul.nav!"))
|
@element = div("h4", "Code") << (list = div("ul.nav!"))
|
||||||
list << (div("li.code_list") << div("a.selected" , "none selected"))
|
list << (div("li.code_list") << div("a.selected" , "none selected"))
|
||||||
|
get_parfait unless @parfait
|
||||||
get_codes unless @codes
|
get_codes unless @codes
|
||||||
@element << div("br")
|
@element << div("br")
|
||||||
@element << div("br")
|
@element << div("br")
|
||||||
@ -35,6 +36,13 @@ class SelectView < ElementView
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_parfait
|
||||||
|
promise = Browser::HTTP.get "/parfait.json"
|
||||||
|
promise.then do |response|
|
||||||
|
@parfait = decode response.text
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def add_selection
|
def add_selection
|
||||||
list = div "ul"
|
list = div "ul"
|
||||||
@codes << @codes.first if @codes.length == 1
|
@codes << @codes.first if @codes.length == 1
|
||||||
@ -49,10 +57,11 @@ class SelectView < ElementView
|
|||||||
|
|
||||||
def decode code
|
def decode code
|
||||||
begin
|
begin
|
||||||
return Kernel.eval(code)
|
val = Kernel.eval(code)
|
||||||
|
return val
|
||||||
rescue => e
|
rescue => e
|
||||||
@element.at_css(".selected").text = "error, #{e}"
|
@element.at_css(".selected").text = "error, #{e}"
|
||||||
puts e
|
puts e.backtrace
|
||||||
end
|
end
|
||||||
s(:statements, s(:class, :Foo, s(:derives, nil), s(:statements, s(:class_field, :Integer, :x))))
|
s(:statements, s(:class, :Foo, s(:derives, nil), s(:statements, s(:class_field, :Integer, :x))))
|
||||||
end
|
end
|
||||||
@ -64,8 +73,21 @@ class SelectView < ElementView
|
|||||||
promise.then do |response|
|
promise.then do |response|
|
||||||
code = decode( response.text)
|
code = decode( response.text)
|
||||||
machine = Register.machine.boot
|
machine = Register.machine.boot
|
||||||
|
@parfait.each do |part|
|
||||||
|
begin
|
||||||
|
Soml.compile( part )
|
||||||
|
rescue => e
|
||||||
|
puts e.backtrace
|
||||||
|
end
|
||||||
|
end
|
||||||
|
begin
|
||||||
Soml.compile( code )
|
Soml.compile( code )
|
||||||
|
rescue => e
|
||||||
|
puts e.backtrace
|
||||||
|
raise e
|
||||||
|
end
|
||||||
machine.collect
|
machine.collect
|
||||||
|
puts "starting"
|
||||||
@interpreter.start machine.init
|
@interpreter.start machine.init
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user