Class IO
In: lib/io_marshal.rb
Parent: Object

Methods

dump   load   load_one_object  

Classes and Modules

Class IO::IOMarshalTest

Public Instance methods

[Source]

# File lib/io_marshal.rb, line 15
  def dump(*objs)
    objs.each do |obj|
      data = Marshal.dump(obj)
      write(data.size.to_s)
      write("\0")
      write(data)
    end
  end

[Source]

# File lib/io_marshal.rb, line 24
  def load(num_objs=nil, non_block=false)
    objs = []
    n = num_objs
    begin
      return nil if eof? and non_block
      objs << load_one_object(non_block)
      unless n.nil?
        n -= 1
        break if n <= 0
      end
    end until eof?
    objs
  end

[Source]

# File lib/io_marshal.rb, line 38
  def load_one_object(non_block=false)
    size = ''
    while (c = read(1)) != "\0" do
      if c.nil?
        if non_block
          return nil
        else
          sleep(0.1)
          redo
        end
      end
      size += c
    end
    size = size.to_i
    data = read(size)
    Marshal.load(data)
  end

end

[Validate]