module Lucid::ContextLoader::InterfaceIO
Attributes
visitor[W]
Public Instance Methods
ask(question, timeout_seconds)
click to toggle source
# File lib/lucid/interface_io.rb, line 13 def ask(question, timeout_seconds) STDOUT.puts(question) STDOUT.flush puts(question) if(Lucid::JRUBY) answer = jruby_gets(timeout_seconds) else answer = mri_gets(timeout_seconds) end if(answer) puts(answer) answer else raise("Lucid waited for input for #{timeout_seconds} seconds, then timed out.") end end
embed(src, mime_type, label)
click to toggle source
# File lib/lucid/interface_io.rb, line 32 def embed(src, mime_type, label) @visitor.embed(src, mime_type, label) end
puts(*messages)
click to toggle source
# File lib/lucid/interface_io.rb, line 9 def puts(*messages) @visitor.puts(*messages) end
Private Instance Methods
jruby_gets(timeout_seconds)
click to toggle source
# File lib/lucid/interface_io.rb, line 48 def jruby_gets(timeout_seconds) answer = nil t = java.lang.Thread.new do answer = STDIN.gets end t.start t.join(timeout_seconds * 1000) answer end
mri_gets(timeout_seconds)
click to toggle source
# File lib/lucid/interface_io.rb, line 38 def mri_gets(timeout_seconds) begin Timeout.timeout(timeout_seconds) do STDIN.gets end rescue Timeout::Error nil end end