diff --git a/lib/sprockets.rb b/lib/sprockets.rb index 5f0b0c7b2..42d25a5f1 100644 --- a/lib/sprockets.rb +++ b/lib/sprockets.rb @@ -105,7 +105,7 @@ module Sprockets register_bundle_processor 'application/javascript', Bundle register_bundle_processor 'text/css', Bundle - register_bundle_metadata_reducer '*/*', :data, proc { "" }, :concat + register_bundle_metadata_reducer '*/*', :data, proc { "" }, :+ register_bundle_metadata_reducer 'application/javascript', :data, proc { "" }, Utils.method(:concat_javascript_sources) register_bundle_metadata_reducer '*/*', :links, :+ diff --git a/lib/sprockets/directive_processor.rb b/lib/sprockets/directive_processor.rb index f4680c4bb..fd0f16dce 100644 --- a/lib/sprockets/directive_processor.rb +++ b/lib/sprockets/directive_processor.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: false + require 'set' require 'shellwords' diff --git a/lib/sprockets/server.rb b/lib/sprockets/server.rb index 2ad2c9abd..15c01ba57 100644 --- a/lib/sprockets/server.rb +++ b/lib/sprockets/server.rb @@ -251,11 +251,11 @@ def cache_headers(env, etag) # If the request url contains a fingerprint, set a long # expires on the response if path_fingerprint(env["PATH_INFO"]) - headers["Cache-Control"] << ", max-age=31536000" + headers["Cache-Control"] += ", max-age=31536000" # Otherwise set `must-revalidate` since the asset could be modified. else - headers["Cache-Control"] << ", must-revalidate" + headers["Cache-Control"] += ", must-revalidate" headers["Vary"] = "Accept-Encoding" end diff --git a/lib/sprockets/utils.rb b/lib/sprockets/utils.rb index 11ff9443e..114723cea 100644 --- a/lib/sprockets/utils.rb +++ b/lib/sprockets/utils.rb @@ -102,6 +102,7 @@ def string_end_with_semicolon?(str) # # Returns buf String. def concat_javascript_sources(buf, source) + buf = +buf if source.bytesize > 0 buf << source diff --git a/test/test_asset.rb b/test/test_asset.rb index ae21c242a..52fc51dc0 100644 --- a/test/test_asset.rb +++ b/test/test_asset.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: false + require "sprockets_test" module AssetTests diff --git a/test/test_digest_utils.rb b/test/test_digest_utils.rb index 5d6d2184a..8f0b1e42b 100644 --- a/test/test_digest_utils.rb +++ b/test/test_digest_utils.rb @@ -35,7 +35,7 @@ def test_digest assert_equal "62427aa539a0b78e90fd710dc0e15f2960771ba44214b5d41d4a93a8b2940a38", hexdigest({"foo" => "baz"}) assert_equal "b6054efd9929004bdd0a1c09eb2d12961325396da749143def3e9a4050aa703e", hexdigest([[:foo, 1]]) assert_equal "79a19ffe41ecebd5dc35e95363e0b4aa79b139a22bc650384df57eb09842f099", hexdigest([{:foo => 1}]) - assert_equal "94ee40cca7c2c6d2a134033d2f5a31c488cad5d3dcc61a3dbb5e2a858635874b", hexdigest("foo".force_encoding('UTF-8').encoding) + assert_equal "94ee40cca7c2c6d2a134033d2f5a31c488cad5d3dcc61a3dbb5e2a858635874b", hexdigest(Encoding::UTF_8) assert_raises(TypeError) do digest(Object.new) diff --git a/test/test_encoding.rb b/test/test_encoding.rb index 5e9e940b2..1115771ab 100644 --- a/test/test_encoding.rb +++ b/test/test_encoding.rb @@ -1,4 +1,5 @@ # encoding: utf-8 +# frozen_string_literal: false require "sprockets_test" class AssetEncodingTest < Sprockets::TestCase diff --git a/test/test_sass.rb b/test/test_sass.rb index 6c6a38a88..500fa91a5 100644 --- a/test/test_sass.rb +++ b/test/test_sass.rb @@ -1,5 +1,7 @@ require 'sprockets_test' +return if "test".frozen? # The sass gem isn't frozen string literal compatible + silence_warnings do require 'sass' end