class Hanami::Assets::Bundler::Compressor
Compresses a JS or CSS file
@since 0.3.0 @api private
Constants
- JAVASCRIPT_EXT
@since 0.3.0 @api private
- STYLESHEET_EXT
@since 0.3.0 @api private
Public Class Methods
new(path, configuration)
click to toggle source
Return a new instance
@since 0.3.0 @api private
# File lib/hanami/assets/bundler/compressor.rb, line 23 def initialize(path, configuration) @path = path @configuration = configuration end
Public Instance Methods
compress()
click to toggle source
@return [String, nil] the compressed contents of the file OR nil if it's not compressable
@since 0.3.0 @api private
# File lib/hanami/assets/bundler/compressor.rb, line 32 def compress case File.extname(@path) when JAVASCRIPT_EXT then _compress(compressor(:js)) when STYLESHEET_EXT then _compress(compressor(:css)) end end
Private Instance Methods
_compress(compressor)
click to toggle source
@since 0.3.0 @api private
# File lib/hanami/assets/bundler/compressor.rb, line 49 def _compress(compressor) compressor.compress(@path) rescue => exception # rubocop:disable Style/RescueStandardError warn( [ "Skipping compression of: `#{@path}'", "Reason: #{exception}\n", "\t#{exception.backtrace.join("\n\t")}\n\n" ].join("\n") ) end
compressor(type)
click to toggle source
@since 0.3.0 @api private
# File lib/hanami/assets/bundler/compressor.rb, line 43 def compressor(type) @configuration.__send__(:"#{type}_compressor") end