Module: Webmachine::Resource::Encodings
- Included in:
- Webmachine::Resource
- Defined in:
- lib/webmachine/resource/encodings.rb
Overview
This module implements standard Content-Encodings that you might want to use in your Webmachine::Resource. To use one, simply return it in the hash from Callbacks#encodings_provided.
Instance Method Summary collapse
-
#encode_deflate(data) ⇒ Object
The ‘deflate’ encoding, which uses libz’s DEFLATE compression.
-
#encode_gzip(data) ⇒ Object
The ‘gzip’ encoding, which uses GNU Zip (via libz).
-
#encode_identity(data) ⇒ Object
The ‘identity’ encoding, which does no compression.
Instance Method Details
#encode_deflate(data) ⇒ Object
The ‘deflate’ encoding, which uses libz’s DEFLATE compression.
16 17 18 19 |
# File 'lib/webmachine/resource/encodings.rb', line 16 def encode_deflate(data) # The deflate options were borrowed from Rack and Mongrel1. Zlib::Deflate.deflate(data, Zlib::DEFAULT_COMPRESSION, -Zlib::MAX_WBITS, Zlib::DEF_MEM_LEVEL, Zlib::DEFAULT_STRATEGY) end |
#encode_gzip(data) ⇒ Object
Note:
Because of the header/checksum requirements, gzip cannot be used on streamed responses.
The ‘gzip’ encoding, which uses GNU Zip (via libz).
24 25 26 27 28 |
# File 'lib/webmachine/resource/encodings.rb', line 24 def encode_gzip(data) ''.tap do |out| Zlib::GzipWriter.wrap(StringIO.new(out)) { |gz| gz << data } end end |
#encode_identity(data) ⇒ Object
The ‘identity’ encoding, which does no compression.
11 12 13 |
# File 'lib/webmachine/resource/encodings.rb', line 11 def encode_identity(data) data end |