Module: Dizby::WritableStream

Included in:
Messenger
Defined in:
lib/dizby/stream/writable.rb

Instance Method Summary collapse

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