class IRuby::OStream
IO-like object that publishes to 0MQ socket.
Attributes
Public Class Methods
Source
# File lib/iruby/ostream.rb, line 6 def initialize(session, name) @session, @name = session, name end
Public Instance Methods
Source
# File lib/iruby/ostream.rb, line 39 def printf(format, *obj) str = build_string { |sio| sio.printf(format, *obj) } session_send(str) end
Source
# File lib/iruby/ostream.rb, line 44 def puts(*obj) str = build_string { |sio| sio.puts(*obj) } session_send(str) end
Source
# File lib/iruby/ostream.rb, line 26 def read(*args) raise IOError, 'not opened for reading' end
Source
# File lib/iruby/ostream.rb, line 54 def set_encoding(extern, intern) extern end
Called by irb
Source
# File lib/iruby/ostream.rb, line 32 def write(*obj) str = build_string { |sio| sio.write(*obj) } session_send(str) end
Source
# File lib/iruby/ostream.rb, line 49 def writelines(lines) lines.each { |s| write(s) } end
Private Instance Methods
Source
# File lib/iruby/ostream.rb, line 60 def build_string StringIO.open { |sio| yield(sio); sio.string } end
Source
# File lib/iruby/ostream.rb, line 64 def session_send(str) raise 'I/O operation on closed file' unless @session @session.send(:publish, :stream, name: @name, text: str) nil end