Sha256: bc9c2d8964176d474ee5ceae0c7a93ec89ba8c6458ceab63b62c4b57220db7d2

Contents?: true

Size: 780 Bytes

Versions: 34

Compression:

Stored size: 780 Bytes

Contents

# frozen_string_literal: true

module Puma
  # 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.
  #
  class NullIO
    def gets
      nil
    end

    def string
      ""
    end

    def each
    end

    # Mimics IO#read with no data.
    #
    def read(count = nil, _buffer = nil)
      count && count > 0 ? nil : ""
    end

    def rewind
    end

    def close
    end

    def size
      0
    end

    def eof?
      true
    end

    def sync
      true
    end

    def sync=(v)
    end

    def puts(*ary)
    end

    def write(*ary)
    end

    def flush
      self
    end

    # This is used as singleton class, so can't have state.
    def closed?
      false
    end
  end
end

Version data entries

34 entries across 34 versions & 3 rubygems

Version Path
jun-puma-1.0.1-java lib/puma/null_io.rb
puma-5.6.9-java lib/puma/null_io.rb
puma-5.6.9 lib/puma/null_io.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/puma-5.6.8/lib/puma/null_io.rb
puma-5.6.8-java lib/puma/null_io.rb
puma-5.6.8 lib/puma/null_io.rb
puma-6.4.0-java lib/puma/null_io.rb
puma-6.4.0 lib/puma/null_io.rb
puma-5.6.7-java lib/puma/null_io.rb
puma-5.6.7 lib/puma/null_io.rb
puma-6.3.1-java lib/puma/null_io.rb
puma-6.3.1 lib/puma/null_io.rb
puma-5.6.6-java lib/puma/null_io.rb
puma-5.6.6 lib/puma/null_io.rb
puma-6.3.0-java lib/puma/null_io.rb
puma-6.3.0 lib/puma/null_io.rb
puma-6.2.2-java lib/puma/null_io.rb
puma-6.2.2 lib/puma/null_io.rb
puma-6.2.1-java lib/puma/null_io.rb
puma-6.2.1 lib/puma/null_io.rb