class Sprockets::ExportersPack::BrotliExporter

Attributes

font_regex[W]
quality[W]
text_regex[W]

Public Class Methods

font_regex() click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 47
def font_regex
  @font_regex || /font|otf/
end
quality() click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 43
def quality
  @quality || 9
end
text_regex() click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 51
def text_regex
  @text_regex || /text|(application\/(javascript|json|xml))/
end

Public Instance Methods

call() click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 21
def call
  data = File.binread(target)
  mode = if asset.content_type.match self.class.font_regex
    :font
  elsif asset.content_type.match self.class.text_regex
    :text
  else
    :generic
  end
  brotli = Brotli.deflate(data, mode: mode, quality: self.class.quality)

  write(@brotli_target) do |file|
    file.write(brotli)
    file.close
  end
end
setup() click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 7
def setup
  @brotli_target = "#{ target }.br"
end
skip?(logger) click to toggle source
# File lib/sprockets/exporters_pack/brotli_exporter.rb, line 11
def skip?(logger)
  if ::File.exist?(@brotli_target)
    logger.debug "Skipping #{ @brotli_target }, already exists"
    true
  else
    logger.info "Writing #{ @brotli_target }"
    false
  end
end