class CJSONCI::Client
Public Class Methods
new(cmd)
click to toggle source
# File lib/cjsonci/client.rb, line 6 def initialize(cmd) @stdin, @stdout, @stderr, @wait_thr = Open3.popen3(cmd) @queue = Queue.new # consider something like https://github.com/kontena/kontena/blob/edb1d6c40e1ceb1b5aae88501d35cda525b64339/cli/lib/kontena/cli/helpers/exec_helper.rb#L38-L51 Thread.new do @stdout.each_line do |line| @queue.push JSON.parse(line) end end end
Public Instance Methods
close()
click to toggle source
# File lib/cjsonci/client.rb, line 36 def close @stdin.close end
eval(code)
click to toggle source
# File lib/cjsonci/client.rb, line 18 def eval(code) input = { eval: code, } @stdin.puts input.to_json result = nil begin result = @queue.pop rescue Exception => ex @stderr.each_line do |line| puts line end exit 1 end result end