Module: GryphonNest::Compressors

Defined in:
lib/gryphon_nest/compressors.rb,
lib/gryphon_nest/compressors/gzip_compressor.rb,
lib/gryphon_nest/compressors/brotli_compressor.rb

Defined Under Namespace

Classes: BrotliCompressor, GzipCompressor

Constant Summary collapse

COMPRESSABLE_FILETYPES =
%w[
  .html
  .htm
  .xhtml
  .txt
  .csv
  .css
  .js
  .mjs
  .md
  .xml
  .svg
].freeze

Class Method Summary collapse

Class Method Details

.can_compress?(file) ⇒ Boolean

Parameters:

  • file (Pathname)

Returns:

  • (Boolean)


25
26
27
# File 'lib/gryphon_nest/compressors.rb', line 25

def can_compress?(file)
  file.size >= 20 && COMPRESSABLE_FILETYPES.include?(file.extname)
end

.createObject

return [Array<Object>]



30
31
32
33
34
35
36
37
38
# File 'lib/gryphon_nest/compressors.rb', line 30

def create
  compressors = [GzipCompressor.new]

  require 'brotli'
  compressors.append(BrotliCompressor.new)
  compressors
rescue LoadError
  compressors
end