class NexusSW::LXD::Transport::Mixins::Rest::StdinStub
Attributes
driver[R]
Public Class Methods
new(driver)
click to toggle source
return self as an IO (un)like object
# File lib/nexussw/lxd/transport/mixins/rest.rb, line 31 def initialize(driver) @driver = driver end
pipe(driver)
click to toggle source
return a real IO object for parity with Local
Transport
# File lib/nexussw/lxd/transport/mixins/rest.rb, line 37 def self.pipe(driver) NIO::WebSocket::Reactor.start reader, writer = IO.pipe NIO::WebSocket::Reactor.queue_task do iomon = NIO::WebSocket::Reactor.selector.register(reader, :r) iomon.value = proc do data = read(iomon) driver.binary data if data end end writer end
read(monitor)
click to toggle source
# File lib/nexussw/lxd/transport/mixins/rest.rb, line 54 def self.read(monitor) monitor.io.read_nonblock(16384) rescue IO::WaitReadable # rubocop:disable Lint/ShadowedException nil rescue Errno::ECONNRESET, EOFError, IOError monitor.close nil end
Public Instance Methods
write(data)
click to toggle source
# File lib/nexussw/lxd/transport/mixins/rest.rb, line 50 def write(data) driver.binary data end