Skip to content

Commit 07e5e29

Browse files
committed
Environment#version will no longer affect asset digests
1 parent ca816ea commit 07e5e29

File tree

6 files changed

+6
-42
lines changed

6 files changed

+6
-42
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ submit a pull request.
358358

359359
**3.0.0**
360360

361+
* Environment#version no longer affects asset digests. Only used for busting the asset cache.
361362
* Removed builtin support for LESS.
362363
* Removed include directive support.
363364

lib/sprockets/base.rb

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,6 @@ def version=(version)
4949
@version = version
5050
end
5151

52-
# Returns a `Digest` instance for the `Environment`.
53-
#
54-
# This value serves two purposes. If two `Environment`s have the
55-
# same digest value they can be treated as equal. This is more
56-
# useful for comparing environment states between processes rather
57-
# than in the same. Two equal `Environment`s can share the same
58-
# cached assets.
59-
#
60-
# The value also provides a seed digest for all `Asset`
61-
# digests. Any change in the environment digest will affect all of
62-
# its assets.
63-
def digest
64-
# Compute the initial digest using the implementation class. The
65-
# Sprockets release version and custom environment version are
66-
# mixed in. So any new releases will affect all your assets.
67-
@digest ||= digest_class.new.update(version.to_s)
68-
69-
# Returned a dupped copy so the caller can safely mutate it with `.update`
70-
@digest.dup
71-
end
72-
7352
# Get and set `Logger` instance.
7453
attr_accessor :logger
7554

@@ -386,7 +365,7 @@ def build_static_asset_hash(asset)
386365
type: 'static',
387366
length: stat.size,
388367
mtime: stat.mtime.to_i,
389-
digest: digest.file(asset[:filename]).hexdigest,
368+
digest: digest_class.file(asset[:filename]).hexdigest,
390369
dependency_digest: dependencies_hexdigest([asset[:filename]]),
391370
dependency_paths: [asset[:filename]]
392371
})

lib/sprockets/cached_environment.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def initialize(environment)
2121
@context_class = environment.context_class
2222
@cache = environment.cache
2323
@trail = environment.trail.cached
24-
@digest = environment.digest
2524
@digest_class = environment.digest_class
2625
@version = environment.version
2726
@mime_types = environment.mime_types

lib/sprockets/processing.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ def process(processors, filename, logical_path, content_type, data)
223223
{
224224
source: data,
225225
length: data.bytesize,
226-
digest: digest.update(data).hexdigest, # FIXME: Avoid Env#digest
226+
digest: digest_class.hexdigest(data),
227227
required_paths: required_paths,
228228
stubbed_paths: stubbed_paths.to_a,
229229
dependency_paths: dependency_paths.to_a

test/test_asset.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def self.test(name, &block)
1515
end
1616

1717
test "digest is source digest" do
18-
assert_equal @env.digest.update(@asset.to_s).hexdigest, @asset.digest
18+
assert_equal Digest::SHA1.hexdigest(@asset.to_s), @asset.digest
1919
end
2020

2121
test "length is source length" do

test/test_environment.rb

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -492,25 +492,10 @@ def setup
492492
assert_nil @env.css_compressor
493493
end
494494

495-
test "changing digest implementation class" do
496-
old_digest = @env.digest
495+
test "changing version doesn't affect the assets digest" do
497496
old_asset_digest = @env["gallery.js"].digest
498-
499-
@env.digest_class = Digest::MD5
500-
@env.version = 'md5'
501-
502-
assert old_digest != @env.digest
503-
assert old_asset_digest != @env["gallery.js"].digest
504-
end
505-
506-
test "changing digest version" do
507-
old_digest = @env.digest
508-
old_asset_digest = @env["gallery.js"].digest
509-
510497
@env.version = 'v2'
511-
512-
assert old_digest != @env.digest
513-
assert old_asset_digest != @env["gallery.js"].digest
498+
assert old_asset_digest == @env["gallery.js"].digest
514499
end
515500

516501
test "bundled asset is stale if its mtime is updated or deleted" do

0 commit comments

Comments
 (0)