class Hanami::Assets::Compressors::Javascript

Base class for JavaScript compressors

@since 0.1.0 @api private

Public Class Methods

for(engine_name) click to toggle source

Factory for Javascript compressors.

It loads a compressor for the given name.

@param engine_name [Symbol,String,NilClass,#compress] the name of the

engine to load or an instance of an engine

@return [Hanami::Assets::Compressors::Abstract] returns a concrete

implementation of a compressor

@raise [Hanami::Assets::Compressors::UnknownCompressorError] when the

given name refers to an unknown compressor engine

@since 0.1.0 @api private

@see Hanami::Assets::Compressors::Abstract#for @see Hanami::Assets::Configuration#javascript_compressor

@example Basic Usage

require 'hanami/assets'
require 'hanami/assets/compressors/javascript'

Hanami::Assets::Compressors::Javascript.for(:closure)
  # => #<Hanami::Assets::Compressors::ClosureJavascript:0x007fa32a32e108 ...>

@example Null Compressor

require 'hanami/assets'
require 'hanami/assets/compressors/javascript'

Hanami::Assets::Compressors::Javascript.for(nil)
  # => #<Hanami::Assets::Compressors::NullCompressor:0x007fa32a314258>

@example Custom Compressor

require 'hanami/assets'
require 'hanami/assets/compressors/javascript'

class CustomJavascriptCompressor
  def compress(filename)
    # ...
  end
end

Hanami::Assets::Compressors::Javascript.for(CustomJavascriptCompressor.new)
  # => #<CustomJavascriptCompressor:0x007fa32a2cdf10>

@example Third Party Compressor

require 'hanami/assets'
require 'hanami/assets/compressors/javascript'
require 'hanami/foo/compressor' # third party gem

Hanami::Assets::Compressors::Javascript.for(:foo)
  # => #<Hanami::Assets::Compressors::FooJavascript:0x007fa3dd9ed968>

@example Unknown Engine

require 'hanami/assets'
require 'hanami/assets/compressors/javascript'

Hanami::Assets::Compressors::Javascript.for(:wat)
  # => Hanami::Assets::Compressors::UnknownCompressorError: Unknown Javascript compressor: :wat
# File lib/hanami/assets/compressors/javascript.rb, line 71
def self.for(engine_name)
  super
end