sprockets 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4743994bc846327ac80bde662aa5a26fd95ce5cca2dd149deafe0fe94b6bf00
4
- data.tar.gz: 454485ef7d2c5aac60c69b7d7042ed1b74245afecfeadc72c7e9bc290dc8b5b8
3
+ metadata.gz: f59adc73cec32bd913421523e00e2615eb6557cce967d6b59b8244a9f969051d
4
+ data.tar.gz: d970c5ed6ba67c58afd8c3529634f450d9ed1357000cb5952916efa9dca77d4e
5
5
  SHA512:
6
- metadata.gz: c6d61894b3f53a76bf1f04c3f2fe74143b33e43d5fbdc3db216bdf0ad88d06f8a73fc61bd12071ee79e8aab49b36cb14685f6bb2d86582387cbc5522cef305a3
7
- data.tar.gz: ca2bff624116f6de55ce4f9c6371be9d71245d2883c4837cf5a1b4969006fbdf8507b358c7986cccb03edb00711367538176ed2701a1e725cde1206163c64e2c
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 verision of Rails [#604]
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 [Accesing Assets](#accessing-assets) above. A path relative to
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 = :uglify
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 = :uglify
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 `uglifier` and `sass` gems to your Gemfile when using above options.
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 aset is loaded, then
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
  #
@@ -6,7 +6,7 @@ module Sprockets
6
6
  class Asset
7
7
  attr_reader :logical_path
8
8
 
9
- # Private: Intialize Asset wrapper from attributes Hash.
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 proccessor documentation itself.
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 publically accessible URL.
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
- logical_path.sub(/\.(\w+)$/) { |ext| "-#{etag}#{ext}" }
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.
@@ -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 candiate filenames.
16
+ # Returns candidate filenames.
17
17
  def resolve_alternates(load_path, logical_path)
18
18
  candidates, deps = super
19
19
 
@@ -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 substract from the required set.
13
+ # :stubbed - Set of asset URIs to subtract from the required set.
14
14
  #
15
15
  # Also see DirectiveProcessor.
16
16
  class Bundle
@@ -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 retreive a wrapped interface.
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 expection is that all of its file system methods are cached
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.
@@ -6,7 +6,7 @@ module Sprockets
6
6
  # Processor engine class for the CoffeeScript compiler.
7
7
  # Depends on the `coffee-script` and `coffee-script-source` gems.
8
8
  #
9
- # For more infomation see:
9
+ # For more information see:
10
10
  #
11
11
  # https://github.com/rails/ruby-coffee-script
12
12
  #
@@ -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::MD5`.
62
+ # `Digest::SHA512`.
63
63
  #
64
- # environment.digest_class = Digest::MD5
64
+ # environment.digest_class = Digest::SHA512
65
65
  #
66
66
  def digest_class=(klass)
67
67
  self.config = config.merge(digest_class: klass).freeze
@@ -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
- # basics implemention may be provided with different methods that
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
@@ -40,7 +40,7 @@ module Sprockets
40
40
  end
41
41
  end
42
42
 
43
- # Public: Add environmental dependency inheirted by all assets.
43
+ # Public: Add environmental dependency inherited by all assets.
44
44
  #
45
45
  # uri - String dependency URI
46
46
  #
@@ -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
- end
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 infomation see:
7
+ # For more information see:
8
8
  #
9
9
  # https://github.com/sstephenson/ruby-eco
10
10
  # https://github.com/sstephenson/eco
@@ -4,7 +4,7 @@ require 'sprockets/autoload'
4
4
  module Sprockets
5
5
  # Processor engine class for the EJS compiler. Depends on the `ejs` gem.
6
6
  #
7
- # For more infomation see:
7
+ # For more information see:
8
8
  #
9
9
  # https://github.com/sstephenson/ruby-ejs
10
10
  #
@@ -18,8 +18,7 @@ class Sprockets::ERBProcessor
18
18
  end
19
19
 
20
20
  def call(input)
21
- match = ERB.version.match(/\Aerb\.rb \[(?<version>[^ ]+) /)
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
- # Convienence class for all exporters to inherit from
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 intialization
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.
@@ -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 - A Fixnum which sets the maximum number of versions of "histories"
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
@@ -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
- # infomation about the structure.
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) do |asset|
126
- yield asset
127
- end
125
+ environment.find_all_linked_assets(path).to_a
128
126
  end
129
127
  end
130
- promises.each(&:wait!)
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 manfiest back to FS
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
@@ -8,7 +8,7 @@ module Sprockets
8
8
  # load_path - String environment path
9
9
  # logical_path - String path relative to base
10
10
  #
11
- # Returns candiate filenames.
11
+ # Returns candidate filenames.
12
12
  def resolve_alternates(load_path, logical_path)
13
13
  candidates, deps = super
14
14
 
@@ -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 funciton (default: nil)
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 seperate Processor steps.
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
- ] + (0.class == Integer ? [Integer] : [Bignum, Fixnum])).freeze
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 `sass` gem.
9
9
  #
10
- # For more infomation see:
10
+ # For more information see:
11
11
  #
12
12
  # https://github.com/sass/sass
13
13
  # https://github.com/rails/sass-rails
@@ -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 infomation see:
10
+ # For more information see:
11
11
  #
12
12
  # https://github.com/sass/sassc-ruby
13
13
  # https://github.com/sass/sassc-rails
@@ -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
- path = Rack::Utils.unescape(env['PATH_INFO'].to_s.sub(/^\//, ''))
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 aquire all information
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 seperate source map transformations into a single
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 seperated by , and ;.
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|
@@ -25,7 +25,7 @@ module Sprockets
25
25
 
26
26
  # Internal: Duplicate and store key/value on new frozen hash.
27
27
  #
28
- # Seperated for recursive calls, always use hash_reassoc(hash, *keys).
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
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Sprockets
3
- VERSION = "4.0.2"
3
+ VERSION = "4.0.3"
4
4
  end
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.2
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: 2020-06-05 00:00:00.000000000 Z
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.1.2
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: []