Module: Dizby::WritableStream
- Included in:
- Messenger
- Defined in:
- lib/dizby/stream/writable.rb
Instance Method Summary collapse
- #dump_data(obj, error = false)
- #dump_obj(obj, error) private
- #make_distributed(obj, error) private
- #write(data)
Instance Method Details
#dump_data(obj, error = false)
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/dizby/stream/writable.rb', line 16 def dump_data(obj, error = false) @server.log.debug("dumping: #{obj.inspect}") if obj.is_a?(UndumpableObject) @server.log.debug('dumping undumpable') obj = make_distributed(obj, error) end str = dump_obj(obj, error) @server.log.debug("dumped: #{str.inspect}") [str.size].pack('N') + str end |
#dump_obj(obj, error) (private)
32 33 34 35 36 37 |
# File 'lib/dizby/stream/writable.rb', line 32 def dump_obj(obj, error) Marshal.dump(obj) rescue @server.log.debug('rescuing and dumping pseudo-undumpable...') Marshal.dump(make_distributed(obj, error)) end |
#make_distributed(obj, error) (private)
39 40 41 |
# File 'lib/dizby/stream/writable.rb', line 39 def make_distributed(obj, error) @server.make_distributed(obj, error) end |
#write(data)
12 13 14 |
# File 'lib/dizby/stream/writable.rb', line 12 def write(data) @stream.write(data) end |