Skip to content

Commit 0159123

Browse files
committed
Merge pull request #226 from rails/recycle-cached-env-for-precompiled-assets
Perf: ensure same cached environment is used for precompiled_assets
2 parents fdb0df6 + 6a4bcd5 commit 0159123

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

lib/sprockets/rails/helper.rb

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,24 @@ def lookup_asset_for_path(path, options = {})
219219

220220
# Internal: Generate a Set of all precompiled assets.
221221
def precompiled_assets
222-
@precompiled_assets ||= Set.new(assets_manifest.find(assets_precompile || []))
222+
@precompiled_assets ||= begin
223+
assets = Set.new
224+
225+
filters = (assets_precompile || []).map { |f|
226+
Sprockets::Manifest.compile_match_filter(f)
227+
}
228+
229+
env = assets_environment
230+
env.logical_paths do |logical_path, filename|
231+
if filters.any? { |f| f.call(logical_path, filename) }
232+
env.find_all_linked_assets(filename) do |asset|
233+
assets << asset
234+
end
235+
end
236+
end
237+
238+
assets
239+
end
223240
end
224241
end
225242
end

0 commit comments

Comments
 (0)