Class: Sprockets::Utils::Gzip
| Relationships & Source Files | |
| Namespace Children | |
|
Modules:
| |
| Inherits: | Object |
| Defined in: | lib/sprockets/utils/gzip.rb |
Constant Summary
-
COMPRESSIBLE_MIME_TYPES =
# File 'lib/sprockets/utils/gzip.rb', line 54
What non-text mime types should we compress? This list comes from: https://www.fastly.com/blog/new-gzip-settings-and-deciding-what-compress
{ "application/vnd.ms-fontobject" => true, "application/x-font-opentype" => true, "application/x-font-ttf" => true, "image/x-icon" => true, "image/svg+xml" => true }
Class Method Summary
-
.new(asset, archiver: ZlibArchiver) ⇒ Gzip
constructor
Private: Generates a gzipped file based off of reference file.
Instance Attribute Summary
- #archiver readonly
-
#can_compress? ⇒ Boolean
readonly
Private: Returns whether or not an asset can be compressed.
-
#cannot_compress? ⇒ Boolean
readonly
Private: Opposite of #can_compress?.
- #charset readonly
- #content_type readonly
- #source readonly
Instance Method Summary
-
#compress(file, target)
Private: Generates a gzipped file based off of reference asset.
Constructor Details
.new(asset, archiver: ZlibArchiver) ⇒ Gzip
Private: Generates a gzipped file based off of reference file.
# File 'lib/sprockets/utils/gzip.rb', line 45
def initialize(asset, archiver: ZlibArchiver) @content_type = asset.content_type @source = asset.source @charset = asset.charset @archiver = archiver end
Instance Attribute Details
#archiver (readonly)
[ GitHub ]# File 'lib/sprockets/utils/gzip.rb', line 42
attr_reader :content_type, :source, :charset, :archiver
#can_compress? ⇒ Boolean (readonly)
Private: Returns whether or not an asset can be compressed.
We want to compress any file that is text based. You do not want to compress binary files as they may already be compressed and running them through a compression algorithm would make them larger.
Return Boolean.
# File 'lib/sprockets/utils/gzip.rb', line 70
def can_compress? # The "charset" of a mime type is present if the value is # encoded text. We can check this value to see if the asset # can be compressed. # # We also check against our list of non-text compressible mime types @charset || COMPRESSIBLE_MIME_TYPES.include?(@content_type) end
#cannot_compress? ⇒ Boolean (readonly)
Private: Opposite of #can_compress?.
Returns Boolean.
# File 'lib/sprockets/utils/gzip.rb', line 82
def cannot_compress? !can_compress? end
#charset (readonly)
[ GitHub ]# File 'lib/sprockets/utils/gzip.rb', line 42
attr_reader :content_type, :source, :charset, :archiver
#content_type (readonly)
[ GitHub ]#source (readonly)
[ GitHub ]# File 'lib/sprockets/utils/gzip.rb', line 42
attr_reader :content_type, :source, :charset, :archiver
Instance Method Details
#compress(file, target)
Private: Generates a gzipped file based off of reference asset.
Compresses the target asset's contents and puts it into a file with
the same name plus a .gz extension in the same folder as the original.
Does not modify the target asset.
Returns nothing.