class Sprockets::Rails::QuietAssets

Public Class Methods

new(app) click to toggle source
# File lib/sprockets/rails/quiet_assets.rb, line 6
def initialize(app)
  @app = app
  @assets_regex = %r(\A/{0,2}#{::Rails.application.config.assets.prefix})
end

Public Instance Methods

call(env) click to toggle source
# File lib/sprockets/rails/quiet_assets.rb, line 11
def call(env)
  if env['PATH_INFO'] =~ @assets_regex
    raise_logger_silence_error unless ::Rails.logger.respond_to?(:silence)

    ::Rails.logger.silence { @app.call(env) }
  else
    @app.call(env)
  end
end

Private Instance Methods

raise_logger_silence_error() click to toggle source
# File lib/sprockets/rails/quiet_assets.rb, line 22
def raise_logger_silence_error
  error = "You have enabled `config.assets.quiet`, but your `Rails.logger`\n"
  error << "does not use the `LoggerSilence` module.\n\n"
  error << "Please use a compatible logger such as `ActiveSupport::Logger`\n"
  error << "to take advantage of quiet asset logging.\n\n"

  raise LoggerSilenceError, error
end