class Puma::NullIO

Provides an IO-like object that always appears to contain no data. Used as the value for rack.input when the request has no body.

Public Instance Methods

binmode() click to toggle source
# File lib/puma/null_io.rb, line 93
def binmode
  self
end
binmode?() click to toggle source
# File lib/puma/null_io.rb, line 97
def binmode?
  true
end
close() click to toggle source
# File lib/puma/null_io.rb, line 51
def close
end
closed?() click to toggle source

This is used as singleton class, so can't have state.

# File lib/puma/null_io.rb, line 80
def closed?
  false
end
each() click to toggle source
# File lib/puma/null_io.rb, line 16
def each
end
eof?() click to toggle source
# File lib/puma/null_io.rb, line 58
def eof?
  true
end
external_encoding() click to toggle source

per rack spec

# File lib/puma/null_io.rb, line 89
def external_encoding
  Encoding::ASCII_8BIT
end
flush() click to toggle source
# File lib/puma/null_io.rb, line 75
def flush
  self
end
gets() click to toggle source
# File lib/puma/null_io.rb, line 8
def gets
  nil
end
pos() click to toggle source
# File lib/puma/null_io.rb, line 19
def pos
  0
end
puts(*ary) click to toggle source
# File lib/puma/null_io.rb, line 69
def puts(*ary)
end
read(length = nil, buffer = nil) click to toggle source

Mimics IO#read with no data.

# File lib/puma/null_io.rb, line 25
def read(length = nil, buffer = nil)
  if length.to_i < 0
    raise ArgumentError, "(negative length #{length} given)"
  end

  buffer = if buffer.nil?
    "".b
  else
    String.try_convert(buffer) or raise TypeError, "no implicit conversion of #{buffer.class} into String"
  end
  buffer.clear
  if length.to_i > 0
    nil
  else
    buffer
  end
end
rewind() click to toggle source
# File lib/puma/null_io.rb, line 43
def rewind
end
seek(pos, whence = 0) click to toggle source
# File lib/puma/null_io.rb, line 46
def seek(pos, whence = 0)
  raise ArgumentError, "negative length #{pos} given" if pos.negative?
  0
end
set_encoding(enc) click to toggle source
# File lib/puma/null_io.rb, line 84
def set_encoding(enc)
  self
end
size() click to toggle source
# File lib/puma/null_io.rb, line 54
def size
  0
end
string() click to toggle source
# File lib/puma/null_io.rb, line 12
def string
  ""
end
sync() click to toggle source
# File lib/puma/null_io.rb, line 62
def sync
  true
end
sync=(v) click to toggle source
# File lib/puma/null_io.rb, line 66
def sync=(v)
end
write(*ary) click to toggle source
# File lib/puma/null_io.rb, line 72
def write(*ary)
end