Class: Rubylet::MemFileIO

Inherits:
Object
  • Object
show all
Defined in:
lib/rubylet/mem_file_io.rb

Constant Summary collapse

DEFAULT_LIMIT =
4096 * 4

Instance Method Summary collapse

Constructor Details

#initialize(limit = DEFAULT_LIMIT) ⇒ MemFileIO

Returns a new instance of MemFileIO.

Parameters:

  • limit (Integer) (defaults to: DEFAULT_LIMIT)

    the max size of the first (memory) buffer



11
12
13
14
15
# File 'lib/rubylet/mem_file_io.rb', line 11

def initialize(limit = DEFAULT_LIMIT)
  @limit = limit
  @mem = StringIO.new
  @file = nil
end

Instance Method Details

#closeObject



45
46
47
# File 'lib/rubylet/mem_file_io.rb', line 45

def close
  for_read.close
end

#each(&block) ⇒ Object



37
38
39
# File 'lib/rubylet/mem_file_io.rb', line 37

def each(&block)
  for_read.each(&block)
end

#getsObject



25
26
27
# File 'lib/rubylet/mem_file_io.rb', line 25

def gets
  for_read.gets
end

#puts(str) ⇒ Object



17
18
19
# File 'lib/rubylet/mem_file_io.rb', line 17

def puts(str)
  for_write(str.size + $/.size).puts(str)
end

#read(length = nil, buffer = nil) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/rubylet/mem_file_io.rb', line 29

def read(length = nil, buffer = nil)
  if buffer
    for_read.read(length, buffer)
  else
    for_read.read(length)
  end
end

#rewindObject



41
42
43
# File 'lib/rubylet/mem_file_io.rb', line 41

def rewind
  for_read.rewind
end

#write(str) ⇒ Object



21
22
23
# File 'lib/rubylet/mem_file_io.rb', line 21

def write(str)
  for_write(str.size).write(str)
end