module Sprockets::Processing

def register_bundle_metadata_reducer(mime_type, key, *args, &block)

Returns nothing.

block - Proc accepting the memo accumulator and current value
initial - Initial memo to pass to the reduce funciton (default: nil)
key - Symbol metadata key
mime_type - String MIME Type. Use '*/*' applies to all types.

}
total + count
Sprockets.register_bundle_metadata_reducer 'text/css', :selector_count, 0 { |total, count|

Sprockets.register_bundle_metadata_reducer 'application/javascript', :jshint_errors, [], :+

Examples

Public: Register bundle metadata reducer function.
def register_bundle_metadata_reducer(mime_type, key, *args, &block)
  case args.size
  when 0
    reducer = block
  when 1
    if block_given?
      initial = args[0]
      reducer = block
    else
      initial = nil
      reducer = args[0].to_proc
    end
  when 2
    initial = args[0]
    reducer = args[1].to_proc
  else
    raise ArgumentError, "wrong number of arguments (#{args.size} for 0..2)"
  end
  self.config = hash_reassoc(config, :bundle_reducers, mime_type) do |reducers|
    reducers.merge(key => [initial, reducer])
  end
end