Method: Cyborg::Assets::AssetType#compress

Defined in:
lib/cyborg/plugin/assets/asset.rb

#compress(file) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/cyborg/plugin/assets/asset.rb', line 145

def compress(file)
  return unless Cyborg.production?

  mtime = File.mtime(file)
  gz_file = "#{file}.gz"
  return if File.exist?(gz_file) && File.mtime(gz_file) >= mtime

  File.open(gz_file, "wb") do |dest|
    gz = Zlib::GzipWriter.new(dest, Zlib::BEST_COMPRESSION)
    gz.mtime = mtime.to_i
    IO.copy_stream(open(file), gz)
    gz.close
  end

  File.utime(mtime, mtime, gz_file)
end