lib/sprockets/rails/quiet_assets.rb in sprockets-rails-3.4.2 vs lib/sprockets/rails/quiet_assets.rb in sprockets-rails-3.5.0
- old
+ new
@@ -1,18 +1,32 @@
module Sprockets
module Rails
+ class LoggerSilenceError < StandardError; end
+
class QuietAssets
def initialize(app)
@app = app
@assets_regex = %r(\A/{0,2}#{::Rails.application.config.assets.prefix})
end
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
+ 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
end
end
end