`Processing` is an internal mixin whose public methods are exposed on the `Environment` and `Index` classes.
Returns an `Array` of `Processor` classes. If a `mime_type` argument is supplied, the processors registered under that extension will be returned.
Bundle Processors are ran on concatenated assets rather than individual files.
All `Processor`s must follow the `Tilt::Template` interface. It is recommended to subclass `Tilt::Template`.
# File lib/sprockets/processing.rb, line 150 def bundle_processors(mime_type = nil) if mime_type @bundle_processors[mime_type].dup else deep_copy_hash(@bundle_processors) end end
Returns an `Array` of format extension `String`s.
format_extensions # => ['.js', '.css']
# File lib/sprockets/processing.rb, line 15 def format_extensions @trail.extensions - @engines.keys end
Returns an `Array` of `Processor` classes. If a `mime_type` argument is supplied, the processors registered under that extension will be returned.
Postprocessors are ran after Preprocessors and Engine processors.
All `Processor`s must follow the `Tilt::Template` interface. It is recommended to subclass `Tilt::Template`.
# File lib/sprockets/processing.rb, line 49 def postprocessors(mime_type = nil) if mime_type @postprocessors[mime_type].dup else deep_copy_hash(@postprocessors) end end
Returns an `Array` of `Processor` classes. If a `mime_type` argument is supplied, the processors registered under that extension will be returned.
Preprocessors are ran before Postprocessors and Engine processors.
All `Processor`s must follow the `Tilt::Template` interface. It is recommended to subclass `Tilt::Template`.
# File lib/sprockets/processing.rb, line 33 def preprocessors(mime_type = nil) if mime_type @preprocessors[mime_type].dup else deep_copy_hash(@preprocessors) end end
Deprecated alias for `preprocessors`.
# File lib/sprockets/processing.rb, line 20 def processors(*args) preprocessors(*args) end
Registers a new Bundle Processor `klass` for `mime_type`.
register_bundle_processor 'text/css', Sprockets::CharsetNormalizer
A block can be passed for to create a shorthand processor.
register_bundle_processor :my_processor do |context, data| data.gsub(...) end
# File lib/sprockets/processing.rb, line 168 def register_bundle_processor(mime_type, klass, &block) if block_given? name = klass.to_s klass = Class.new(Processor) do @name = name @processor = block end end @bundle_processors[mime_type].push(klass) end
Registers a new Postprocessor `klass` for `mime_type`.
register_postprocessor 'text/css', Sprockets::CharsetNormalizer
A block can be passed for to create a shorthand processor.
register_postprocessor 'text/css', :my_processor do |context, data| data.gsub(...) end
# File lib/sprockets/processing.rb, line 94 def register_postprocessor(mime_type, klass, &block) if block_given? name = klass.to_s klass = Class.new(Processor) do @name = name @processor = block end end @postprocessors[mime_type].push(klass) end
Registers a new Preprocessor `klass` for `mime_type`.
register_preprocessor 'text/css', Sprockets::DirectiveProcessor
A block can be passed for to create a shorthand processor.
register_preprocessor 'text/css', :my_processor do |context, data| data.gsub(...) end
# File lib/sprockets/processing.rb, line 72 def register_preprocessor(mime_type, klass, &block) if block_given? name = klass.to_s klass = Class.new(Processor) do @name = name @processor = block end end @preprocessors[mime_type].push(klass) end
Deprecated alias for `register_preprocessor`.
# File lib/sprockets/processing.rb, line 58 def register_processor(*args, &block) register_preprocessor(*args, &block) end
Remove Bundle Processor `klass` for `mime_type`.
unregister_bundle_processor 'text/css', Sprockets::CharsetNormalizer
# File lib/sprockets/processing.rb, line 184 def unregister_bundle_processor(mime_type, klass) if klass.is_a?(String) || klass.is_a?(Symbol) klass = @bundle_processors[mime_type].detect { |cls| cls.respond_to?(:name) && cls.name == "Sprockets::Processor (#{klass})" } end @bundle_processors[mime_type].delete(klass) end
Remove Postprocessor `klass` for `mime_type`.
unregister_postprocessor 'text/css', Sprockets::DirectiveProcessor
# File lib/sprockets/processing.rb, line 130 def unregister_postprocessor(mime_type, klass) if klass.is_a?(String) || klass.is_a?(Symbol) klass = @postprocessors[mime_type].detect { |cls| cls.respond_to?(:name) && cls.name == "Sprockets::Processor (#{klass})" } end @postprocessors[mime_type].delete(klass) end
Remove Preprocessor `klass` for `mime_type`.
unregister_preprocessor 'text/css', Sprockets::DirectiveProcessor
# File lib/sprockets/processing.rb, line 115 def unregister_preprocessor(mime_type, klass) if klass.is_a?(String) || klass.is_a?(Symbol) klass = @preprocessors[mime_type].detect { |cls| cls.respond_to?(:name) && cls.name == "Sprockets::Processor (#{klass})" } end @preprocessors[mime_type].delete(klass) end
Deprecated alias for `unregister_preprocessor`.
# File lib/sprockets/processing.rb, line 107 def unregister_processor(*args) unregister_preprocessor(*args) end
# File lib/sprockets/processing.rb, line 196 def add_engine_to_trail(ext, klass) @trail.append_extension(ext.to_s) if klass.respond_to?(:default_mime_type) && klass.default_mime_type if format_ext = extension_for_mime_type(klass.default_mime_type) @trail.alias_extension(ext.to_s, format_ext) end end end