module Sprockets::Processing
def process_bundle_reducers(assets, reducers)
reducers - Array of [initial, reducer_proc] pairs
assets - Array of Assets
metadata Hash.
Internal: Run bundle reducers on set of Assets producing a reduced
def process_bundle_reducers(assets, reducers) initial = {} reducers.each do |k, (v, _)| initial[k] = v if v end assets.reduce(initial) do |h, asset| reducers.each do |k, (_, block)| value = k == :data ? asset.source : asset.metadata[k] h[k] = h.key?(k) ? block.call(h[k], value) : value end h end end