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