### Home Classes Methods

### In Files

- lib/yajl/deflate/stream_reader.rb

### Parent

Zlib::Inflate

### Methods

- ::new
- ::parse
- #read

### Class/Module Index

Quicksearch

- Yajl
- Yajl::Bzip2
- Yajl::Bzip2::StreamReader
- Yajl::Bzip2::StreamWriter
- Yajl::Deflate
- Yajl::Deflate::StreamReader
- Yajl::Deflate::StreamWriter
- Yajl::Encoder
- Yajl::Gzip
- Yajl::Gzip::StreamReader
- Yajl::Gzip::StreamWriter
- Yajl::HttpStream
- Yajl::HttpStream::HttpError
- Yajl::HttpStream::InvalidContentType
- Yajl::Parser
- JSON
- JSON::GeneratorError
- JSON::JSONError
- JSON::ParserError
- Kernel
- Object

No matching classes.

# Yajl::Deflate::StreamReader

This is a wrapper around Zlib::Inflate, creating a read method that adheres to the IO spec, allowing for two parameters (length, and buffer)

### Public Class Methods

new(io, options) click to toggle source

Wrapper to the initialize method so we can set the initial IO to parse from.

    # File lib/yajl/deflate/stream_reader.rb, line 8
    def initialize(io, options)
      @io = io
      super(options)
    end

parse(input, options={}, buffer_size=nil, &block) click to toggle source

Helper method for one-off parsing from a deflate-compressed stream

See Yajl::Parser#parse for parameter documentation

    # File lib/yajl/deflate/stream_reader.rb, line 29
    def self.parse(input, options={}, buffer_size=nil, &block)
      if input.is_a?(String)
        input = StringIO.new(input)
      end

      if options.is_a?(Hash)
        deflate_options = options.delete(:deflate_options)
        Yajl::Parser.new(options).parse(new(input, deflate_options), buffer_size, &block)
      elsif options.is_a?(Fixnum)
        Yajl::Parser.new.parse(new(input, options), buffer_size, &block)
      end
    end

### Public Instance Methods

read(len=nil, buffer=nil) click to toggle source

A helper method to allow use similar to IO#read

    # File lib/yajl/deflate/stream_reader.rb, line 14
    def read(len=nil, buffer=nil)
      if val = @io.read(len)
        unless buffer.nil?
          buffer.replace(inflate(val))
          return buffer
        end
        inflate(@io.read(len))
      else
        nil
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.