sprockets 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/MIT-LICENSE +21 -0
- data/README.md +4 -4
- data/lib/sprockets/add_source_map_comment_to_asset_processor.rb +1 -1
- data/lib/sprockets/asset.rb +8 -4
- data/lib/sprockets/bower.rb +1 -1
- data/lib/sprockets/bundle.rb +1 -1
- data/lib/sprockets/cache.rb +1 -1
- data/lib/sprockets/cached_environment.rb +1 -1
- data/lib/sprockets/coffee_script_processor.rb +1 -1
- data/lib/sprockets/configuration.rb +2 -2
- data/lib/sprockets/context.rb +2 -1
- data/lib/sprockets/dependencies.rb +1 -1
- data/lib/sprockets/digest_utils.rb +10 -13
- data/lib/sprockets/eco_processor.rb +1 -1
- data/lib/sprockets/ejs_processor.rb +1 -1
- data/lib/sprockets/erb_processor.rb +8 -2
- data/lib/sprockets/exporters/base.rb +2 -2
- data/lib/sprockets/loader.rb +1 -1
- data/lib/sprockets/manifest.rb +8 -7
- data/lib/sprockets/npm.rb +1 -1
- data/lib/sprockets/processing.rb +1 -1
- data/lib/sprockets/processor_utils.rb +4 -3
- data/lib/sprockets/sass_processor.rb +1 -1
- data/lib/sprockets/sassc_processor.rb +1 -1
- data/lib/sprockets/server.rb +11 -1
- data/lib/sprockets/source_map_processor.rb +1 -1
- data/lib/sprockets/source_map_utils.rb +2 -2
- data/lib/sprockets/utils.rb +4 -1
- data/lib/sprockets/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f59adc73cec32bd913421523e00e2615eb6557cce967d6b59b8244a9f969051d
|
4
|
+
data.tar.gz: d970c5ed6ba67c58afd8c3529634f450d9ed1357000cb5952916efa9dca77d4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fb439abcba98f893e88ee2bc75af8e3b59760c82f510fd4de510706e49a4fb28fbc84d9c0eefcc172dd981aec04bcaec2f5afc572d03081d6600249b3eb9632
|
7
|
+
data.tar.gz: f28698f721422b64b05de921d7e91ff8972415ba3a82e47d196095f4e6a487103078d69dfcd54b9027341c7852b079d6ef35d6626b68508a63627e44a75c0891
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
Get upgrade notes from Sprockets 3.x to 4.x at https://github.com/rails/sprockets/blob/master/UPGRADING.md
|
4
4
|
|
5
|
+
## 4.0.3
|
6
|
+
|
7
|
+
- Fix `Manifest#find` yielding from a Promise causing issue on Ruby 3.1.0-dev. [#720](https://github.com/rails/sprockets/pull/720)
|
8
|
+
- Better detect the ERB version to avoid deprecation warnings. [#719](https://github.com/rails/sprockets/pull/719)
|
9
|
+
- Allow assets already fingerprinted to be served through `Sprockets::Server`
|
10
|
+
- Do not fingerprint files that already contain a valid digest in their name
|
11
|
+
- Remove remaining support for Ruby < 2.4.[#672](https://github.com/rails/sprockets/pull/672)
|
12
|
+
|
5
13
|
## 4.0.2
|
6
14
|
|
7
15
|
- Fix `etag` and digest path compilation that were generating string with invalid digest since 4.0.1.
|
@@ -23,7 +31,7 @@ Get upgrade notes from Sprockets 3.x to 4.x at https://github.com/rails/sprocket
|
|
23
31
|
|
24
32
|
## 4.0.0.beta9
|
25
33
|
|
26
|
-
- Minimum Ruby version for Sprockets 4 is now 2.5+ which matches minimum ruby
|
34
|
+
- Minimum Ruby version for Sprockets 4 is now 2.5+ which matches minimum ruby version of Rails [#604]
|
27
35
|
- Fix threading bug introduced in Sprockets 4 [#603]
|
28
36
|
- Warn when two potential manifest files exist. [#560]
|
29
37
|
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2014-2019 Sam Stephenson
|
2
|
+
Copyright (c) 2014-2019 Joshua Peek
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
a copy of this software and associated documentation files (the
|
6
|
+
"Software"), to deal in the Software without restriction, including
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -376,7 +376,7 @@ generated and made available to the public you can link it by including this in
|
|
376
376
|
```
|
377
377
|
|
378
378
|
The argument to `link` is a _logical path_, that is it will be resolved according to the
|
379
|
-
configured asset load paths. See [
|
379
|
+
configured asset load paths. See [Accessing Assets](#accessing-assets) above. A path relative to
|
380
380
|
the current file won't work, it must be a logical path.
|
381
381
|
|
382
382
|
**Caution**: the "link" directive should always have an explicit extension on the end.
|
@@ -606,19 +606,19 @@ Several JavaScript and CSS minifiers are available through shorthand.
|
|
606
606
|
In Rails you will specify them with:
|
607
607
|
|
608
608
|
```ruby
|
609
|
-
config.assets.js_compressor = :
|
609
|
+
config.assets.js_compressor = :terser
|
610
610
|
config.assets.css_compressor = :scss
|
611
611
|
```
|
612
612
|
|
613
613
|
If you're not using Rails, configure this directly on the "environment".
|
614
614
|
|
615
615
|
``` ruby
|
616
|
-
environment.js_compressor = :
|
616
|
+
environment.js_compressor = :terser
|
617
617
|
environment.css_compressor = :scss
|
618
618
|
```
|
619
619
|
|
620
620
|
If you are using Sprockets directly with a Rack app, don't forget to add
|
621
|
-
the `
|
621
|
+
the `terser` and `sass` gems to your Gemfile when using above options.
|
622
622
|
|
623
623
|
### Gzip
|
624
624
|
|
@@ -14,7 +14,7 @@ module Sprockets
|
|
14
14
|
# information that is needed to build a source map file.
|
15
15
|
#
|
16
16
|
# To add this comment we must have an asset we can link to.
|
17
|
-
# To do this we ensure that the original
|
17
|
+
# To do this we ensure that the original asset is loaded, then
|
18
18
|
# we use a use a special mime type. For example `application/js-sourcemap+json`
|
19
19
|
# for a JS source map.
|
20
20
|
#
|
data/lib/sprockets/asset.rb
CHANGED
@@ -6,7 +6,7 @@ module Sprockets
|
|
6
6
|
class Asset
|
7
7
|
attr_reader :logical_path
|
8
8
|
|
9
|
-
# Private:
|
9
|
+
# Private: Initialize Asset wrapper from attributes Hash.
|
10
10
|
#
|
11
11
|
# Asset wrappers should not be initialized directly, only
|
12
12
|
# Environment#find_asset should vend them.
|
@@ -38,7 +38,7 @@ module Sprockets
|
|
38
38
|
#
|
39
39
|
# The API status of the keys is dependent on the pipeline processors
|
40
40
|
# itself. So some values maybe considered public and others internal.
|
41
|
-
# See the pipeline
|
41
|
+
# See the pipeline processor documentation itself.
|
42
42
|
#
|
43
43
|
# Returns Hash.
|
44
44
|
attr_reader :metadata
|
@@ -53,7 +53,7 @@ module Sprockets
|
|
53
53
|
|
54
54
|
# Public: Internal URI to lookup asset by.
|
55
55
|
#
|
56
|
-
# NOT a
|
56
|
+
# NOT a publicly accessible URL.
|
57
57
|
#
|
58
58
|
# Returns URI.
|
59
59
|
attr_reader :uri
|
@@ -64,7 +64,11 @@ module Sprockets
|
|
64
64
|
#
|
65
65
|
# Returns String.
|
66
66
|
def digest_path
|
67
|
-
|
67
|
+
if DigestUtils.already_digested?(@name)
|
68
|
+
logical_path
|
69
|
+
else
|
70
|
+
logical_path.sub(/\.(\w+)$/) { |ext| "-#{etag}#{ext}" }
|
71
|
+
end
|
68
72
|
end
|
69
73
|
|
70
74
|
# Public: Return load path + logical path with digest spliced in.
|
data/lib/sprockets/bower.rb
CHANGED
@@ -13,7 +13,7 @@ module Sprockets
|
|
13
13
|
# load_path - String environment path
|
14
14
|
# logical_path - String path relative to base
|
15
15
|
#
|
16
|
-
# Returns
|
16
|
+
# Returns candidate filenames.
|
17
17
|
def resolve_alternates(load_path, logical_path)
|
18
18
|
candidates, deps = super
|
19
19
|
|
data/lib/sprockets/bundle.rb
CHANGED
@@ -10,7 +10,7 @@ module Sprockets
|
|
10
10
|
# Uses pipeline metadata:
|
11
11
|
#
|
12
12
|
# :required - Ordered Set of asset URIs to prepend
|
13
|
-
# :stubbed - Set of asset URIs to
|
13
|
+
# :stubbed - Set of asset URIs to subtract from the required set.
|
14
14
|
#
|
15
15
|
# Also see DirectiveProcessor.
|
16
16
|
class Bundle
|
data/lib/sprockets/cache.rb
CHANGED
@@ -62,7 +62,7 @@ module Sprockets
|
|
62
62
|
# Internal: Wrap a backend cache store.
|
63
63
|
#
|
64
64
|
# Always assign a backend cache store instance to Environment#cache= and
|
65
|
-
# use Environment#cache to
|
65
|
+
# use Environment#cache to retrieve a wrapped interface.
|
66
66
|
#
|
67
67
|
# cache - A compatible backend cache store instance.
|
68
68
|
def initialize(cache = nil, logger = self.class.default_logger)
|
@@ -4,7 +4,7 @@ require 'sprockets/base'
|
|
4
4
|
module Sprockets
|
5
5
|
# `CachedEnvironment` is a special cached version of `Environment`.
|
6
6
|
#
|
7
|
-
# The
|
7
|
+
# The exception is that all of its file system methods are cached
|
8
8
|
# for the instances lifetime. This makes `CachedEnvironment` much faster. This
|
9
9
|
# behavior is ideal in production environments where the file system
|
10
10
|
# is immutable.
|
@@ -59,9 +59,9 @@ module Sprockets
|
|
59
59
|
|
60
60
|
# Deprecated: Assign a `Digest` implementation class. This maybe any Ruby
|
61
61
|
# `Digest::` implementation such as `Digest::SHA256` or
|
62
|
-
# `Digest::
|
62
|
+
# `Digest::SHA512`.
|
63
63
|
#
|
64
|
-
# environment.digest_class = Digest::
|
64
|
+
# environment.digest_class = Digest::SHA512
|
65
65
|
#
|
66
66
|
def digest_class=(klass)
|
67
67
|
self.config = config.merge(digest_class: klass).freeze
|
data/lib/sprockets/context.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rack/utils'
|
3
3
|
require 'set'
|
4
4
|
require 'sprockets/errors'
|
5
|
+
require 'delegate'
|
5
6
|
|
6
7
|
module Sprockets
|
7
8
|
# They are typically accessed by ERB templates. You can mix in custom helpers
|
@@ -210,7 +211,7 @@ module Sprockets
|
|
210
211
|
#
|
211
212
|
# NOTE: This helper is currently not implemented and should be
|
212
213
|
# customized by the application. Though, in the future, some
|
213
|
-
#
|
214
|
+
# basic implementation may be provided with different methods that
|
214
215
|
# are required to be overridden.
|
215
216
|
def asset_path(path, options = {})
|
216
217
|
message = <<-EOS
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'digest/md5'
|
3
2
|
require 'digest/sha1'
|
4
3
|
require 'digest/sha2'
|
5
4
|
require 'set'
|
@@ -19,7 +18,6 @@ module Sprockets
|
|
19
18
|
|
20
19
|
# Internal: Maps digest bytesize to the digest class.
|
21
20
|
DIGEST_SIZES = {
|
22
|
-
16 => Digest::MD5,
|
23
21
|
20 => Digest::SHA1,
|
24
22
|
32 => Digest::SHA256,
|
25
23
|
48 => Digest::SHA384,
|
@@ -68,18 +66,8 @@ module Sprockets
|
|
68
66
|
Encoding => ->(val, digest) {
|
69
67
|
digest << 'Encoding'.freeze
|
70
68
|
digest << val.name
|
71
|
-
},
|
72
|
-
}
|
73
|
-
if 0.class != Integer # Ruby < 2.4
|
74
|
-
ADD_VALUE_TO_DIGEST[Fixnum] = ->(val, digest) {
|
75
|
-
digest << 'Integer'.freeze
|
76
|
-
digest << val.to_s
|
77
|
-
}
|
78
|
-
ADD_VALUE_TO_DIGEST[Bignum] = ->(val, digest) {
|
79
|
-
digest << 'Integer'.freeze
|
80
|
-
digest << val.to_s
|
81
69
|
}
|
82
|
-
|
70
|
+
}
|
83
71
|
|
84
72
|
ADD_VALUE_TO_DIGEST.compare_by_identity.rehash
|
85
73
|
|
@@ -189,6 +177,15 @@ module Sprockets
|
|
189
177
|
integrity_uri(unpack_hexdigest(hexdigest))
|
190
178
|
end
|
191
179
|
|
180
|
+
# Internal: Checks an asset name for a valid digest
|
181
|
+
#
|
182
|
+
# name - The name of the asset
|
183
|
+
#
|
184
|
+
# Returns true if the name contains a digest like string and .digested before the extension
|
185
|
+
def already_digested?(name)
|
186
|
+
return name =~ /-([0-9a-f]{7,128})\.digested/
|
187
|
+
end
|
188
|
+
|
192
189
|
private
|
193
190
|
def build_digest(obj)
|
194
191
|
digest = digest_class.new
|
@@ -4,7 +4,7 @@ require 'sprockets/autoload'
|
|
4
4
|
module Sprockets
|
5
5
|
# Processor engine class for the Eco compiler. Depends on the `eco` gem.
|
6
6
|
#
|
7
|
-
# For more
|
7
|
+
# For more information see:
|
8
8
|
#
|
9
9
|
# https://github.com/sstephenson/ruby-eco
|
10
10
|
# https://github.com/sstephenson/eco
|
@@ -18,8 +18,7 @@ class Sprockets::ERBProcessor
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def call(input)
|
21
|
-
|
22
|
-
if match && match[:version] >= "2.2.0" # Ruby 2.6+
|
21
|
+
if keyword_constructor? # Ruby 2.6+
|
23
22
|
engine = ::ERB.new(input[:data], trim_mode: '<>')
|
24
23
|
else
|
25
24
|
engine = ::ERB.new(input[:data], nil, '<>')
|
@@ -34,4 +33,11 @@ class Sprockets::ERBProcessor
|
|
34
33
|
data = engine.result(context.instance_eval('binding'))
|
35
34
|
context.metadata.merge(data: data)
|
36
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def keyword_constructor?
|
40
|
+
return @keyword_constructor if defined? @keyword_constructor
|
41
|
+
@keyword_constructor = ::ERB.instance_method(:initialize).parameters.include?([:key, :trim_mode])
|
42
|
+
end
|
37
43
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Sprockets
|
2
2
|
module Exporters
|
3
|
-
#
|
3
|
+
# Convenience class for all exporters to inherit from
|
4
4
|
#
|
5
5
|
# An exporter is responsible for exporting a Sprockets::Asset
|
6
6
|
# to a file system. For example the Exporters::File class
|
@@ -29,7 +29,7 @@ module Sprockets
|
|
29
29
|
setup
|
30
30
|
end
|
31
31
|
|
32
|
-
# Public: Callback that is executed after
|
32
|
+
# Public: Callback that is executed after initialization
|
33
33
|
#
|
34
34
|
# Any setup that needs to be done can be performed in the +setup+
|
35
35
|
# method. It will be called immediately after initialization.
|
data/lib/sprockets/loader.rb
CHANGED
@@ -291,7 +291,7 @@ module Sprockets
|
|
291
291
|
# Internal: Retrieves an asset based on its digest
|
292
292
|
#
|
293
293
|
# unloaded - An UnloadedAsset
|
294
|
-
# limit -
|
294
|
+
# limit - An Integer which sets the maximum number of versions of "histories"
|
295
295
|
# stored in the cache
|
296
296
|
#
|
297
297
|
# This method attempts to retrieve the last `limit` number of histories of an asset
|
data/lib/sprockets/manifest.rb
CHANGED
@@ -15,7 +15,7 @@ module Sprockets
|
|
15
15
|
# The JSON is part of the public API and should be considered stable. This
|
16
16
|
# should make it easy to read from other programming languages and processes
|
17
17
|
# that don't have sprockets loaded. See `#assets` and `#files` for more
|
18
|
-
#
|
18
|
+
# information about the structure.
|
19
19
|
class Manifest
|
20
20
|
include ManifestUtils
|
21
21
|
|
@@ -112,7 +112,7 @@ module Sprockets
|
|
112
112
|
# Public: Find all assets matching pattern set in environment.
|
113
113
|
#
|
114
114
|
# Returns Enumerator of Assets.
|
115
|
-
def find(*args)
|
115
|
+
def find(*args, &block)
|
116
116
|
unless environment
|
117
117
|
raise Error, "manifest requires environment for compilation"
|
118
118
|
end
|
@@ -122,12 +122,13 @@ module Sprockets
|
|
122
122
|
environment = self.environment.cached
|
123
123
|
promises = args.flatten.map do |path|
|
124
124
|
Concurrent::Promise.execute(executor: executor) do
|
125
|
-
environment.find_all_linked_assets(path)
|
126
|
-
yield asset
|
127
|
-
end
|
125
|
+
environment.find_all_linked_assets(path).to_a
|
128
126
|
end
|
129
127
|
end
|
130
|
-
|
128
|
+
|
129
|
+
promises.each do |promise|
|
130
|
+
promise.value!.each(&block)
|
131
|
+
end
|
131
132
|
|
132
133
|
nil
|
133
134
|
end
|
@@ -273,7 +274,7 @@ module Sprockets
|
|
273
274
|
nil
|
274
275
|
end
|
275
276
|
|
276
|
-
# Persist
|
277
|
+
# Persist manifest back to FS
|
277
278
|
def save
|
278
279
|
data = json_encode(@data)
|
279
280
|
FileUtils.mkdir_p File.dirname(@filename)
|
data/lib/sprockets/npm.rb
CHANGED
data/lib/sprockets/processing.rb
CHANGED
@@ -130,7 +130,7 @@ module Sprockets
|
|
130
130
|
#
|
131
131
|
# mime_type - String MIME Type. Use '*/*' applies to all types.
|
132
132
|
# key - Symbol metadata key
|
133
|
-
# initial - Initial memo to pass to the reduce
|
133
|
+
# initial - Initial memo to pass to the reduce function (default: nil)
|
134
134
|
# block - Proc accepting the memo accumulator and current value
|
135
135
|
#
|
136
136
|
# Returns nothing.
|
@@ -6,7 +6,7 @@ module Sprockets
|
|
6
6
|
#
|
7
7
|
# A Processor is a general function that may modify or transform an asset as
|
8
8
|
# part of the pipeline. CoffeeScript to JavaScript conversion, Minification
|
9
|
-
# or Concatenation are all implemented as
|
9
|
+
# or Concatenation are all implemented as separate Processor steps.
|
10
10
|
#
|
11
11
|
# Processors maybe any object that responds to call. So procs or a class that
|
12
12
|
# defines a self.call method.
|
@@ -118,8 +118,9 @@ module Sprockets
|
|
118
118
|
Symbol,
|
119
119
|
TrueClass,
|
120
120
|
FalseClass,
|
121
|
-
NilClass
|
122
|
-
|
121
|
+
NilClass,
|
122
|
+
Integer
|
123
|
+
]).freeze
|
123
124
|
|
124
125
|
# Internal: Set of all nested compound metadata types that can nest values.
|
125
126
|
VALID_METADATA_COMPOUND_TYPES = Set.new([
|
@@ -7,7 +7,7 @@ require 'uri'
|
|
7
7
|
module Sprockets
|
8
8
|
# Processor engine class for the SASS/SCSS compiler. Depends on the `sassc` gem.
|
9
9
|
#
|
10
|
-
# For more
|
10
|
+
# For more information see:
|
11
11
|
#
|
12
12
|
# https://github.com/sass/sassc-ruby
|
13
13
|
# https://github.com/sass/sassc-rails
|
data/lib/sprockets/server.rb
CHANGED
@@ -35,7 +35,8 @@ module Sprockets
|
|
35
35
|
msg = "Served asset #{env['PATH_INFO']} -"
|
36
36
|
|
37
37
|
# Extract the path from everything after the leading slash
|
38
|
-
|
38
|
+
full_path = Rack::Utils.unescape(env['PATH_INFO'].to_s.sub(/^\//, ''))
|
39
|
+
path = full_path
|
39
40
|
|
40
41
|
unless path.valid_encoding?
|
41
42
|
return bad_request_response(env)
|
@@ -64,6 +65,15 @@ module Sprockets
|
|
64
65
|
# Look up the asset.
|
65
66
|
asset = find_asset(path)
|
66
67
|
|
68
|
+
# Fallback to looking up the asset with the full path.
|
69
|
+
# This will make assets that are hashed with webpack or
|
70
|
+
# other js bundlers work consistently between production
|
71
|
+
# and development pipelines.
|
72
|
+
if asset.nil? && (asset = find_asset(full_path))
|
73
|
+
if_match = asset.etag if fingerprint
|
74
|
+
fingerprint = asset.etag
|
75
|
+
end
|
76
|
+
|
67
77
|
if asset.nil?
|
68
78
|
status = :not_found
|
69
79
|
elsif fingerprint && asset.etag != fingerprint
|
@@ -9,7 +9,7 @@ module Sprockets
|
|
9
9
|
# When a file is passed in it will have a `application/js-sourcemap+json`
|
10
10
|
# or `application/css-sourcemap+json` mime type. The filename will be
|
11
11
|
# match the original asset. The original asset is loaded. As it
|
12
|
-
# gets processed by Sprockets it will
|
12
|
+
# gets processed by Sprockets it will acquire all information
|
13
13
|
# needed to build a source map file in the `asset.to_hash[:metadata][:map]`
|
14
14
|
# key.
|
15
15
|
#
|
@@ -140,7 +140,7 @@ module Sprockets
|
|
140
140
|
}
|
141
141
|
end
|
142
142
|
|
143
|
-
# Public: Combine two
|
143
|
+
# Public: Combine two separate source map transformations into a single
|
144
144
|
# mapping.
|
145
145
|
#
|
146
146
|
# Source transformations may happen in discrete steps producing separate
|
@@ -453,7 +453,7 @@ module Sprockets
|
|
453
453
|
#
|
454
454
|
# ary - Two dimensional Array of Integers.
|
455
455
|
#
|
456
|
-
# Returns a VLQ encoded String
|
456
|
+
# Returns a VLQ encoded String separated by , and ;.
|
457
457
|
def vlq_encode_mappings(ary)
|
458
458
|
ary.map { |group|
|
459
459
|
group.map { |segment|
|
data/lib/sprockets/utils.rb
CHANGED
@@ -25,7 +25,7 @@ module Sprockets
|
|
25
25
|
|
26
26
|
# Internal: Duplicate and store key/value on new frozen hash.
|
27
27
|
#
|
28
|
-
#
|
28
|
+
# Separated for recursive calls, always use hash_reassoc(hash, *keys).
|
29
29
|
#
|
30
30
|
# hash - Hash
|
31
31
|
# key - Object key
|
@@ -132,6 +132,9 @@ module Sprockets
|
|
132
132
|
|
133
133
|
mod.instance_methods.each do |sym|
|
134
134
|
method = mod.instance_method(sym)
|
135
|
+
if base.method_defined?(sym)
|
136
|
+
base.send(:alias_method, sym, sym)
|
137
|
+
end
|
135
138
|
base.send(:define_method, sym, method)
|
136
139
|
end
|
137
140
|
|
data/lib/sprockets/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stephenson
|
8
8
|
- Joshua Peek
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
@@ -336,6 +336,7 @@ extensions: []
|
|
336
336
|
extra_rdoc_files: []
|
337
337
|
files:
|
338
338
|
- CHANGELOG.md
|
339
|
+
- MIT-LICENSE
|
339
340
|
- README.md
|
340
341
|
- bin/sprockets
|
341
342
|
- lib/rake/sprocketstask.rb
|
@@ -422,7 +423,7 @@ homepage: https://github.com/rails/sprockets
|
|
422
423
|
licenses:
|
423
424
|
- MIT
|
424
425
|
metadata: {}
|
425
|
-
post_install_message:
|
426
|
+
post_install_message:
|
426
427
|
rdoc_options: []
|
427
428
|
require_paths:
|
428
429
|
- lib
|
@@ -437,8 +438,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
437
438
|
- !ruby/object:Gem::Version
|
438
439
|
version: '0'
|
439
440
|
requirements: []
|
440
|
-
rubygems_version: 3.
|
441
|
-
signing_key:
|
441
|
+
rubygems_version: 3.2.32
|
442
|
+
signing_key:
|
442
443
|
specification_version: 4
|
443
444
|
summary: Rack-based asset packaging system
|
444
445
|
test_files: []
|