Skip to content

Commit 35350e2

Browse files
committed
Fix frozen string literal compatibility issues
NB: the Sass tests are just skipped because that gem won't ever be compatible.
1 parent f4218ad commit 35350e2

File tree

8 files changed

+12
-4
lines changed

8 files changed

+12
-4
lines changed

lib/sprockets.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ module Sprockets
105105
register_bundle_processor 'application/javascript', Bundle
106106
register_bundle_processor 'text/css', Bundle
107107

108-
register_bundle_metadata_reducer '*/*', :data, proc { "" }, :concat
108+
register_bundle_metadata_reducer '*/*', :data, proc { "" }, :+
109109
register_bundle_metadata_reducer 'application/javascript', :data, proc { "" }, Utils.method(:concat_javascript_sources)
110110
register_bundle_metadata_reducer '*/*', :links, :+
111111

lib/sprockets/directive_processor.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: false
2+
13
require 'set'
24
require 'shellwords'
35

lib/sprockets/server.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,11 +251,11 @@ def cache_headers(env, etag)
251251
# If the request url contains a fingerprint, set a long
252252
# expires on the response
253253
if path_fingerprint(env["PATH_INFO"])
254-
headers["Cache-Control"] << ", max-age=31536000"
254+
headers["Cache-Control"] += ", max-age=31536000"
255255

256256
# Otherwise set `must-revalidate` since the asset could be modified.
257257
else
258-
headers["Cache-Control"] << ", must-revalidate"
258+
headers["Cache-Control"] += ", must-revalidate"
259259
headers["Vary"] = "Accept-Encoding"
260260
end
261261

lib/sprockets/utils.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ def string_end_with_semicolon?(str)
102102
#
103103
# Returns buf String.
104104
def concat_javascript_sources(buf, source)
105+
buf = +buf
105106
if source.bytesize > 0
106107
buf << source
107108

test/test_asset.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: false
2+
13
require "sprockets_test"
24

35
module AssetTests

test/test_digest_utils.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def test_digest
3535
assert_equal "62427aa539a0b78e90fd710dc0e15f2960771ba44214b5d41d4a93a8b2940a38", hexdigest({"foo" => "baz"})
3636
assert_equal "b6054efd9929004bdd0a1c09eb2d12961325396da749143def3e9a4050aa703e", hexdigest([[:foo, 1]])
3737
assert_equal "79a19ffe41ecebd5dc35e95363e0b4aa79b139a22bc650384df57eb09842f099", hexdigest([{:foo => 1}])
38-
assert_equal "94ee40cca7c2c6d2a134033d2f5a31c488cad5d3dcc61a3dbb5e2a858635874b", hexdigest("foo".force_encoding('UTF-8').encoding)
38+
assert_equal "94ee40cca7c2c6d2a134033d2f5a31c488cad5d3dcc61a3dbb5e2a858635874b", hexdigest(Encoding::UTF_8)
3939

4040
assert_raises(TypeError) do
4141
digest(Object.new)

test/test_encoding.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# encoding: utf-8
2+
# frozen_string_literal: false
23
require "sprockets_test"
34

45
class AssetEncodingTest < Sprockets::TestCase

test/test_sass.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
require 'sprockets_test'
22

3+
return if "test".frozen? # The sass gem isn't frozen string literal compatible
4+
35
silence_warnings do
46
require 'sass'
57
end

0 commit comments

Comments
 (0)