class Condenser::ZlibWriter

Generates a `.gz` file using the zlib algorithm built into Ruby's standard library.

Constants

ADDED_MIME_TYPES
COMPRESSALBE_TYPES

What mime types should we compress? This list comes from: www.fastly.com/blog/new-gzip-settings-and-deciding-what-compress

Attributes

added_mime_types[R]
mime_types[R]

Public Class Methods

new(mime_types: nil, added_mime_types: nil) click to toggle source
# File lib/condenser/writers/zlib_writer.rb, line 20
def initialize(mime_types: nil, added_mime_types: nil)
  @mime_types = mime_types || COMPRESSALBE_TYPES
  @added_mime_types = added_mime_types || ADDED_MIME_TYPES
end

Public Instance Methods

call(output_directory, asset) click to toggle source
# File lib/condenser/writers/zlib_writer.rb, line 33
def call(output_directory, asset)
  filename = File.join(output_directory, "#{asset.path}.gz")
  FileUtils.mkdir_p(File.dirname(filename))
  Condenser::Utils.atomic_write(filename) do |file|
    gz = Zlib::GzipWriter.new(file, Zlib::BEST_COMPRESSION)
    gz.write(asset.source)
    gz.close
    # File.utime(mtime, mtime, file.path)
  end
  
  ["#{asset.filename}.gz"]
end
exist?(asset) click to toggle source
# File lib/condenser/writers/zlib_writer.rb, line 29
def exist?(asset)
  ::File.exist?(path(asset))
end
path(asset) click to toggle source
# File lib/condenser/writers/zlib_writer.rb, line 25
def path(asset)
  "#{asset.path}.gz"
end