lib/sprockets/bundle.rb in sprockets-3.0.0.beta.6 vs lib/sprockets/bundle.rb in sprockets-3.0.0.beta.7

- old
+ new

@@ -1,6 +1,7 @@ -require 'sprockets/asset_uri' +require 'set' +require 'sprockets/utils' module Sprockets # Internal: Bundle processor takes a single file asset and prepends all the # `:required` URIs to the contents. # @@ -13,27 +14,22 @@ class Bundle def self.call(input) env = input[:environment] type = input[:content_type] - # TODO: Rebuilding this URI is a bit of a smell - processed_uri = AssetURI.build(input[:filename], type: type, skip_bundle: true) + processed_uri = env.build_asset_uri(input[:filename], type: type, skip_bundle: true) - cache = Hash.new do |h, uri| - h[uri] = env.load(uri) - end - - find_required = proc { |uri| cache[uri].metadata[:required] } + find_required = proc { |uri| env.load(uri).metadata[:required] } required = Utils.dfs(processed_uri, &find_required) - stubbed = Utils.dfs(cache[processed_uri].metadata[:stubbed], &find_required) + stubbed = Utils.dfs(env.load(processed_uri).metadata[:stubbed], &find_required) required.subtract(stubbed) - assets = required.map { |uri| cache[uri] } + assets = required.map { |uri| env.load(uri) } - dependency_paths = Set.new + dependencies = Set.new(input[:metadata][:dependencies]) (required + stubbed).each do |uri| - dependency_paths += cache[uri].metadata[:dependency_paths] + dependencies.merge(env.load(uri).metadata[:dependencies]) end - env.process_bundle_reducers(assets, env.unwrap_bundle_reducers(type)).merge(dependency_paths: dependency_paths, included: assets.map(&:uri)) + env.process_bundle_reducers(assets, env.load_bundle_reducers(type)).merge(dependencies: dependencies, included: assets.map(&:uri)) end end end