sprockets 2.6.0 → 4.2.2

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.
Files changed (100) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +118 -0
  3. data/{LICENSE → MIT-LICENSE} +2 -2
  4. data/README.md +541 -289
  5. data/bin/sprockets +20 -7
  6. data/lib/rake/sprocketstask.rb +34 -17
  7. data/lib/sprockets/add_source_map_comment_to_asset_processor.rb +60 -0
  8. data/lib/sprockets/asset.rb +158 -210
  9. data/lib/sprockets/autoload/babel.rb +8 -0
  10. data/lib/sprockets/autoload/closure.rb +8 -0
  11. data/lib/sprockets/autoload/coffee_script.rb +8 -0
  12. data/lib/sprockets/autoload/eco.rb +8 -0
  13. data/lib/sprockets/autoload/ejs.rb +8 -0
  14. data/lib/sprockets/autoload/jsminc.rb +8 -0
  15. data/lib/sprockets/autoload/sass.rb +8 -0
  16. data/lib/sprockets/autoload/sassc.rb +8 -0
  17. data/lib/sprockets/autoload/uglifier.rb +8 -0
  18. data/lib/sprockets/autoload/yui.rb +8 -0
  19. data/lib/sprockets/autoload/zopfli.rb +7 -0
  20. data/lib/sprockets/autoload.rb +16 -0
  21. data/lib/sprockets/babel_processor.rb +66 -0
  22. data/lib/sprockets/base.rb +89 -378
  23. data/lib/sprockets/bower.rb +61 -0
  24. data/lib/sprockets/bundle.rb +105 -0
  25. data/lib/sprockets/cache/file_store.rb +190 -14
  26. data/lib/sprockets/cache/memory_store.rb +84 -0
  27. data/lib/sprockets/cache/null_store.rb +54 -0
  28. data/lib/sprockets/cache.rb +271 -0
  29. data/lib/sprockets/cached_environment.rb +64 -0
  30. data/lib/sprockets/closure_compressor.rb +48 -0
  31. data/lib/sprockets/coffee_script_processor.rb +39 -0
  32. data/lib/sprockets/compressing.rb +134 -0
  33. data/lib/sprockets/configuration.rb +79 -0
  34. data/lib/sprockets/context.rb +166 -150
  35. data/lib/sprockets/dependencies.rb +74 -0
  36. data/lib/sprockets/digest_utils.rb +197 -0
  37. data/lib/sprockets/directive_processor.rb +241 -215
  38. data/lib/sprockets/eco_processor.rb +33 -0
  39. data/lib/sprockets/ejs_processor.rb +32 -0
  40. data/lib/sprockets/encoding_utils.rb +261 -0
  41. data/lib/sprockets/environment.rb +23 -64
  42. data/lib/sprockets/erb_processor.rb +43 -0
  43. data/lib/sprockets/errors.rb +5 -13
  44. data/lib/sprockets/exporters/base.rb +71 -0
  45. data/lib/sprockets/exporters/file_exporter.rb +24 -0
  46. data/lib/sprockets/exporters/zlib_exporter.rb +33 -0
  47. data/lib/sprockets/exporters/zopfli_exporter.rb +14 -0
  48. data/lib/sprockets/exporting.rb +73 -0
  49. data/lib/sprockets/file_reader.rb +16 -0
  50. data/lib/sprockets/http_utils.rb +135 -0
  51. data/lib/sprockets/jsminc_compressor.rb +32 -0
  52. data/lib/sprockets/jst_processor.rb +36 -19
  53. data/lib/sprockets/loader.rb +347 -0
  54. data/lib/sprockets/manifest.rb +228 -112
  55. data/lib/sprockets/manifest_utils.rb +48 -0
  56. data/lib/sprockets/mime.rb +78 -31
  57. data/lib/sprockets/npm.rb +52 -0
  58. data/lib/sprockets/path_dependency_utils.rb +77 -0
  59. data/lib/sprockets/path_digest_utils.rb +48 -0
  60. data/lib/sprockets/path_utils.rb +367 -0
  61. data/lib/sprockets/paths.rb +43 -19
  62. data/lib/sprockets/preprocessors/default_source_map.rb +49 -0
  63. data/lib/sprockets/processing.rb +146 -164
  64. data/lib/sprockets/processor_utils.rb +170 -0
  65. data/lib/sprockets/resolve.rb +295 -0
  66. data/lib/sprockets/sass_cache_store.rb +20 -15
  67. data/lib/sprockets/sass_compressor.rb +55 -10
  68. data/lib/sprockets/sass_functions.rb +3 -70
  69. data/lib/sprockets/sass_importer.rb +3 -29
  70. data/lib/sprockets/sass_processor.rb +313 -0
  71. data/lib/sprockets/sassc_compressor.rb +56 -0
  72. data/lib/sprockets/sassc_processor.rb +297 -0
  73. data/lib/sprockets/server.rb +159 -91
  74. data/lib/sprockets/source_map_processor.rb +66 -0
  75. data/lib/sprockets/source_map_utils.rb +483 -0
  76. data/lib/sprockets/transformers.rb +173 -0
  77. data/lib/sprockets/uglifier_compressor.rb +66 -0
  78. data/lib/sprockets/unloaded_asset.rb +139 -0
  79. data/lib/sprockets/uri_tar.rb +99 -0
  80. data/lib/sprockets/uri_utils.rb +194 -0
  81. data/lib/sprockets/utils/gzip.rb +99 -0
  82. data/lib/sprockets/utils.rb +193 -52
  83. data/lib/sprockets/version.rb +2 -1
  84. data/lib/sprockets/yui_compressor.rb +56 -0
  85. data/lib/sprockets.rb +217 -75
  86. metadata +272 -117
  87. data/lib/sprockets/asset_attributes.rb +0 -131
  88. data/lib/sprockets/bundled_asset.rb +0 -80
  89. data/lib/sprockets/caching.rb +0 -96
  90. data/lib/sprockets/charset_normalizer.rb +0 -41
  91. data/lib/sprockets/eco_template.rb +0 -38
  92. data/lib/sprockets/ejs_template.rb +0 -37
  93. data/lib/sprockets/engines.rb +0 -74
  94. data/lib/sprockets/index.rb +0 -99
  95. data/lib/sprockets/processed_asset.rb +0 -152
  96. data/lib/sprockets/processor.rb +0 -32
  97. data/lib/sprockets/safety_colons.rb +0 -28
  98. data/lib/sprockets/sass_template.rb +0 -60
  99. data/lib/sprockets/scss_template.rb +0 -13
  100. data/lib/sprockets/static_asset.rb +0 -58
metadata CHANGED
@@ -1,233 +1,345 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
5
- prerelease:
4
+ version: 4.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sam Stephenson
9
8
  - Joshua Peek
10
- autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2012-09-19 00:00:00.000000000 Z
11
+ date: 2025-04-19 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
- name: hike
14
+ name: rack
17
15
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
16
  requirements:
20
- - - ~>
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.4
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '1.2'
22
+ version: '4'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
26
  requirements:
28
- - - ~>
27
+ - - ">="
29
28
  - !ruby/object:Gem::Version
30
- version: '1.2'
29
+ version: 2.2.4
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
31
33
  - !ruby/object:Gem::Dependency
32
- name: multi_json
34
+ name: concurrent-ruby
33
35
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
36
  requirements:
36
- - - ~>
37
+ - - "~>"
37
38
  - !ruby/object:Gem::Version
38
39
  version: '1.0'
39
40
  type: :runtime
40
41
  prerelease: false
41
42
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
43
  requirements:
44
- - - ~>
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rack
48
+ name: logger
49
49
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
50
  requirements:
52
- - - ~>
51
+ - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '1.0'
53
+ version: '0'
55
54
  type: :runtime
56
55
  prerelease: false
57
56
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
57
  requirements:
60
- - - ~>
58
+ - - ">="
61
59
  - !ruby/object:Gem::Version
62
- version: '1.0'
60
+ version: '0'
63
61
  - !ruby/object:Gem::Dependency
64
- name: tilt
62
+ name: m
65
63
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
64
  requirements:
68
- - - ~>
65
+ - - ">="
69
66
  - !ruby/object:Gem::Version
70
- version: '1.1'
71
- - - ! '!='
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
72
73
  - !ruby/object:Gem::Version
73
- version: 1.3.0
74
- type: :runtime
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: babel-transpiler
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.6'
82
+ type: :development
75
83
  prerelease: false
76
84
  version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
85
  requirements:
79
- - - ~>
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.6'
89
+ - !ruby/object:Gem::Dependency
90
+ name: closure-compiler
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
80
94
  - !ruby/object:Gem::Version
81
95
  version: '1.1'
82
- - - ! '!='
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
83
101
  - !ruby/object:Gem::Version
84
- version: 1.3.0
102
+ version: '1.1'
85
103
  - !ruby/object:Gem::Dependency
86
- name: coffee-script
104
+ name: coffee-script-source
87
105
  requirement: !ruby/object:Gem::Requirement
88
- none: false
89
106
  requirements:
90
- - - ~>
107
+ - - "~>"
91
108
  - !ruby/object:Gem::Version
92
- version: '2.0'
109
+ version: '1.6'
93
110
  type: :development
94
111
  prerelease: false
95
112
  version_requirements: !ruby/object:Gem::Requirement
96
- none: false
97
113
  requirements:
98
- - - ~>
114
+ - - "~>"
99
115
  - !ruby/object:Gem::Version
100
- version: '2.0'
116
+ version: '1.6'
101
117
  - !ruby/object:Gem::Dependency
102
- name: coffee-script-source
118
+ name: coffee-script
103
119
  requirement: !ruby/object:Gem::Requirement
104
- none: false
105
120
  requirements:
106
- - - ~>
121
+ - - "~>"
107
122
  - !ruby/object:Gem::Version
108
- version: 1.2.0
123
+ version: '2.2'
109
124
  type: :development
110
125
  prerelease: false
111
126
  version_requirements: !ruby/object:Gem::Requirement
112
- none: false
113
127
  requirements:
114
- - - ~>
128
+ - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: 1.2.0
130
+ version: '2.2'
117
131
  - !ruby/object:Gem::Dependency
118
132
  name: eco
119
133
  requirement: !ruby/object:Gem::Requirement
120
- none: false
121
134
  requirements:
122
- - - ~>
135
+ - - "~>"
123
136
  - !ruby/object:Gem::Version
124
137
  version: '1.0'
125
138
  type: :development
126
139
  prerelease: false
127
140
  version_requirements: !ruby/object:Gem::Requirement
128
- none: false
129
141
  requirements:
130
- - - ~>
142
+ - - "~>"
131
143
  - !ruby/object:Gem::Version
132
144
  version: '1.0'
133
145
  - !ruby/object:Gem::Dependency
134
146
  name: ejs
135
147
  requirement: !ruby/object:Gem::Requirement
136
- none: false
137
148
  requirements:
138
- - - ~>
149
+ - - "~>"
139
150
  - !ruby/object:Gem::Version
140
151
  version: '1.0'
141
152
  type: :development
142
153
  prerelease: false
143
154
  version_requirements: !ruby/object:Gem::Requirement
144
- none: false
145
155
  requirements:
146
- - - ~>
156
+ - - "~>"
147
157
  - !ruby/object:Gem::Version
148
158
  version: '1.0'
149
159
  - !ruby/object:Gem::Dependency
150
160
  name: execjs
151
161
  requirement: !ruby/object:Gem::Requirement
152
- none: false
153
162
  requirements:
154
- - - ~>
163
+ - - "~>"
155
164
  - !ruby/object:Gem::Version
156
- version: '1.0'
165
+ version: '2.0'
157
166
  type: :development
158
167
  prerelease: false
159
168
  version_requirements: !ruby/object:Gem::Requirement
160
- none: false
161
169
  requirements:
162
- - - ~>
170
+ - - "~>"
163
171
  - !ruby/object:Gem::Version
164
- version: '1.0'
172
+ version: '2.0'
165
173
  - !ruby/object:Gem::Dependency
166
- name: json
174
+ name: jsminc
167
175
  requirement: !ruby/object:Gem::Requirement
168
- none: false
169
176
  requirements:
170
- - - ! '>='
177
+ - - "~>"
171
178
  - !ruby/object:Gem::Version
172
- version: '0'
179
+ version: '1.1'
173
180
  type: :development
174
181
  prerelease: false
175
182
  version_requirements: !ruby/object:Gem::Requirement
176
- none: false
177
183
  requirements:
178
- - - ! '>='
184
+ - - "~>"
179
185
  - !ruby/object:Gem::Version
180
- version: '0'
186
+ version: '1.1'
187
+ - !ruby/object:Gem::Dependency
188
+ name: timecop
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: 0.9.1
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 0.9.1
201
+ - !ruby/object:Gem::Dependency
202
+ name: minitest
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '5.0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '5.0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: nokogiri
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.3'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.3'
181
229
  - !ruby/object:Gem::Dependency
182
230
  name: rack-test
183
231
  requirement: !ruby/object:Gem::Requirement
184
- none: false
185
232
  requirements:
186
- - - ! '>='
233
+ - - "~>"
187
234
  - !ruby/object:Gem::Version
188
- version: '0'
235
+ version: 2.0.0
189
236
  type: :development
190
237
  prerelease: false
191
238
  version_requirements: !ruby/object:Gem::Requirement
192
- none: false
193
239
  requirements:
194
- - - ! '>='
240
+ - - "~>"
195
241
  - !ruby/object:Gem::Version
196
- version: '0'
242
+ version: 2.0.0
197
243
  - !ruby/object:Gem::Dependency
198
244
  name: rake
199
245
  requirement: !ruby/object:Gem::Requirement
200
- none: false
201
246
  requirements:
202
- - - ! '>='
247
+ - - "~>"
203
248
  - !ruby/object:Gem::Version
204
- version: '0'
249
+ version: '13.2'
205
250
  type: :development
206
251
  prerelease: false
207
252
  version_requirements: !ruby/object:Gem::Requirement
208
- none: false
209
253
  requirements:
210
- - - ! '>='
254
+ - - "~>"
211
255
  - !ruby/object:Gem::Version
212
- version: '0'
256
+ version: '13.2'
213
257
  - !ruby/object:Gem::Dependency
214
258
  name: sass
215
259
  requirement: !ruby/object:Gem::Requirement
216
- none: false
217
260
  requirements:
218
- - - ~>
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '3.4'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '3.4'
271
+ - !ruby/object:Gem::Dependency
272
+ name: sassc
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '2.0'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '2.0'
285
+ - !ruby/object:Gem::Dependency
286
+ name: uglifier
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
219
290
  - !ruby/object:Gem::Version
220
- version: '3.1'
291
+ version: '2.3'
221
292
  type: :development
222
293
  prerelease: false
223
294
  version_requirements: !ruby/object:Gem::Requirement
224
- none: false
225
295
  requirements:
226
- - - ~>
296
+ - - ">="
227
297
  - !ruby/object:Gem::Version
228
- version: '3.1'
298
+ version: '2.3'
299
+ - !ruby/object:Gem::Dependency
300
+ name: yui-compressor
301
+ requirement: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - "~>"
304
+ - !ruby/object:Gem::Version
305
+ version: '0.12'
306
+ type: :development
307
+ prerelease: false
308
+ version_requirements: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '0.12'
313
+ - !ruby/object:Gem::Dependency
314
+ name: zopfli
315
+ requirement: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: 0.0.4
320
+ type: :development
321
+ prerelease: false
322
+ version_requirements: !ruby/object:Gem::Requirement
323
+ requirements:
324
+ - - "~>"
325
+ - !ruby/object:Gem::Version
326
+ version: 0.0.4
327
+ - !ruby/object:Gem::Dependency
328
+ name: rubocop-performance
329
+ requirement: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - "~>"
332
+ - !ruby/object:Gem::Version
333
+ version: '1.3'
334
+ type: :development
335
+ prerelease: false
336
+ version_requirements: !ruby/object:Gem::Requirement
337
+ requirements:
338
+ - - "~>"
339
+ - !ruby/object:Gem::Version
340
+ version: '1.3'
229
341
  description: Sprockets is a Rack-based asset packaging system that concatenates and
230
- serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.
342
+ serves JavaScript, CoffeeScript, CSS, Sass, and SCSS.
231
343
  email:
232
344
  - sstephenson@gmail.com
233
345
  - josh@joshpeek.com
@@ -236,66 +348,109 @@ executables:
236
348
  extensions: []
237
349
  extra_rdoc_files: []
238
350
  files:
351
+ - CHANGELOG.md
352
+ - MIT-LICENSE
239
353
  - README.md
240
- - LICENSE
354
+ - bin/sprockets
241
355
  - lib/rake/sprocketstask.rb
356
+ - lib/sprockets.rb
357
+ - lib/sprockets/add_source_map_comment_to_asset_processor.rb
242
358
  - lib/sprockets/asset.rb
243
- - lib/sprockets/asset_attributes.rb
359
+ - lib/sprockets/autoload.rb
360
+ - lib/sprockets/autoload/babel.rb
361
+ - lib/sprockets/autoload/closure.rb
362
+ - lib/sprockets/autoload/coffee_script.rb
363
+ - lib/sprockets/autoload/eco.rb
364
+ - lib/sprockets/autoload/ejs.rb
365
+ - lib/sprockets/autoload/jsminc.rb
366
+ - lib/sprockets/autoload/sass.rb
367
+ - lib/sprockets/autoload/sassc.rb
368
+ - lib/sprockets/autoload/uglifier.rb
369
+ - lib/sprockets/autoload/yui.rb
370
+ - lib/sprockets/autoload/zopfli.rb
371
+ - lib/sprockets/babel_processor.rb
244
372
  - lib/sprockets/base.rb
245
- - lib/sprockets/bundled_asset.rb
373
+ - lib/sprockets/bower.rb
374
+ - lib/sprockets/bundle.rb
375
+ - lib/sprockets/cache.rb
246
376
  - lib/sprockets/cache/file_store.rb
247
- - lib/sprockets/caching.rb
248
- - lib/sprockets/charset_normalizer.rb
377
+ - lib/sprockets/cache/memory_store.rb
378
+ - lib/sprockets/cache/null_store.rb
379
+ - lib/sprockets/cached_environment.rb
380
+ - lib/sprockets/closure_compressor.rb
381
+ - lib/sprockets/coffee_script_processor.rb
382
+ - lib/sprockets/compressing.rb
383
+ - lib/sprockets/configuration.rb
249
384
  - lib/sprockets/context.rb
385
+ - lib/sprockets/dependencies.rb
386
+ - lib/sprockets/digest_utils.rb
250
387
  - lib/sprockets/directive_processor.rb
251
- - lib/sprockets/eco_template.rb
252
- - lib/sprockets/ejs_template.rb
253
- - lib/sprockets/engines.rb
388
+ - lib/sprockets/eco_processor.rb
389
+ - lib/sprockets/ejs_processor.rb
390
+ - lib/sprockets/encoding_utils.rb
254
391
  - lib/sprockets/environment.rb
392
+ - lib/sprockets/erb_processor.rb
255
393
  - lib/sprockets/errors.rb
256
- - lib/sprockets/index.rb
394
+ - lib/sprockets/exporters/base.rb
395
+ - lib/sprockets/exporters/file_exporter.rb
396
+ - lib/sprockets/exporters/zlib_exporter.rb
397
+ - lib/sprockets/exporters/zopfli_exporter.rb
398
+ - lib/sprockets/exporting.rb
399
+ - lib/sprockets/file_reader.rb
400
+ - lib/sprockets/http_utils.rb
401
+ - lib/sprockets/jsminc_compressor.rb
257
402
  - lib/sprockets/jst_processor.rb
403
+ - lib/sprockets/loader.rb
258
404
  - lib/sprockets/manifest.rb
405
+ - lib/sprockets/manifest_utils.rb
259
406
  - lib/sprockets/mime.rb
407
+ - lib/sprockets/npm.rb
408
+ - lib/sprockets/path_dependency_utils.rb
409
+ - lib/sprockets/path_digest_utils.rb
410
+ - lib/sprockets/path_utils.rb
260
411
  - lib/sprockets/paths.rb
261
- - lib/sprockets/processed_asset.rb
412
+ - lib/sprockets/preprocessors/default_source_map.rb
262
413
  - lib/sprockets/processing.rb
263
- - lib/sprockets/processor.rb
264
- - lib/sprockets/safety_colons.rb
414
+ - lib/sprockets/processor_utils.rb
415
+ - lib/sprockets/resolve.rb
265
416
  - lib/sprockets/sass_cache_store.rb
266
417
  - lib/sprockets/sass_compressor.rb
267
418
  - lib/sprockets/sass_functions.rb
268
419
  - lib/sprockets/sass_importer.rb
269
- - lib/sprockets/sass_template.rb
270
- - lib/sprockets/scss_template.rb
420
+ - lib/sprockets/sass_processor.rb
421
+ - lib/sprockets/sassc_compressor.rb
422
+ - lib/sprockets/sassc_processor.rb
271
423
  - lib/sprockets/server.rb
272
- - lib/sprockets/static_asset.rb
424
+ - lib/sprockets/source_map_processor.rb
425
+ - lib/sprockets/source_map_utils.rb
426
+ - lib/sprockets/transformers.rb
427
+ - lib/sprockets/uglifier_compressor.rb
428
+ - lib/sprockets/unloaded_asset.rb
429
+ - lib/sprockets/uri_tar.rb
430
+ - lib/sprockets/uri_utils.rb
273
431
  - lib/sprockets/utils.rb
432
+ - lib/sprockets/utils/gzip.rb
274
433
  - lib/sprockets/version.rb
275
- - lib/sprockets.rb
276
- - bin/sprockets
277
- homepage: http://getsprockets.org/
278
- licenses: []
279
- post_install_message:
434
+ - lib/sprockets/yui_compressor.rb
435
+ homepage: https://github.com/rails/sprockets
436
+ licenses:
437
+ - MIT
438
+ metadata: {}
280
439
  rdoc_options: []
281
440
  require_paths:
282
441
  - lib
283
442
  required_ruby_version: !ruby/object:Gem::Requirement
284
- none: false
285
443
  requirements:
286
- - - ! '>='
444
+ - - ">="
287
445
  - !ruby/object:Gem::Version
288
- version: '0'
446
+ version: 2.5.0
289
447
  required_rubygems_version: !ruby/object:Gem::Requirement
290
- none: false
291
448
  requirements:
292
- - - ! '>='
449
+ - - ">="
293
450
  - !ruby/object:Gem::Version
294
451
  version: '0'
295
452
  requirements: []
296
- rubyforge_project: sprockets
297
- rubygems_version: 1.8.23
298
- signing_key:
299
- specification_version: 3
453
+ rubygems_version: 3.6.2
454
+ specification_version: 4
300
455
  summary: Rack-based asset packaging system
301
456
  test_files: []
@@ -1,131 +0,0 @@
1
- require 'pathname'
2
-
3
- module Sprockets
4
- # `AssetAttributes` is a wrapper similar to `Pathname` that provides
5
- # some helper accessors.
6
- #
7
- # These methods should be considered internalish.
8
- class AssetAttributes
9
- attr_reader :environment, :pathname
10
-
11
- def initialize(environment, path)
12
- @environment = environment
13
- @pathname = path.is_a?(Pathname) ? path : Pathname.new(path.to_s)
14
- end
15
-
16
- # Returns paths search the load path for.
17
- def search_paths
18
- paths = [pathname.to_s]
19
-
20
- path_without_extensions = extensions.inject(pathname) { |p, ext| p.sub(ext, '') }
21
-
22
- # optimization: component.json can only be nested one level deep
23
- if !path_without_extensions.to_s.index('/')
24
- paths << path_without_extensions.join("component.json").to_s
25
- end
26
-
27
- if pathname.basename(extensions.join).to_s != 'index'
28
- paths << path_without_extensions.join("index#{extensions.join}").to_s
29
- end
30
-
31
- paths
32
- end
33
-
34
- # Reverse guess logical path for fully expanded path.
35
- #
36
- # This has some known issues. For an example if a file is
37
- # shaddowed in the path, but is required relatively, its logical
38
- # path will be incorrect.
39
- def logical_path
40
- if root_path = environment.paths.detect { |path| pathname.to_s[path] }
41
- path = pathname.to_s.sub("#{root_path}/", '')
42
- path = pathname.relative_path_from(Pathname.new(root_path)).to_s
43
- path = engine_extensions.inject(path) { |p, ext| p.sub(ext, '') }
44
- path = "#{path}#{engine_format_extension}" unless format_extension
45
- path
46
- else
47
- raise FileOutsidePaths, "#{pathname} isn't in paths: #{environment.paths.join(', ')}"
48
- end
49
- end
50
-
51
- # Returns `Array` of extension `String`s.
52
- #
53
- # "foo.js.coffee"
54
- # # => [".js", ".coffee"]
55
- #
56
- def extensions
57
- @extensions ||= @pathname.basename.to_s.scan(/\.[^.]+/)
58
- end
59
-
60
- # Returns the format extension.
61
- #
62
- # "foo.js.coffee"
63
- # # => ".js"
64
- #
65
- def format_extension
66
- extensions.reverse.detect { |ext|
67
- @environment.mime_types(ext) && !@environment.engines(ext)
68
- }
69
- end
70
-
71
- # Returns an `Array` of engine extensions.
72
- #
73
- # "foo.js.coffee.erb"
74
- # # => [".coffee", ".erb"]
75
- #
76
- def engine_extensions
77
- exts = extensions
78
-
79
- if offset = extensions.index(format_extension)
80
- exts = extensions[offset+1..-1]
81
- end
82
-
83
- exts.select { |ext| @environment.engines(ext) }
84
- end
85
-
86
- # Returns engine classes.
87
- def engines
88
- engine_extensions.map { |ext| @environment.engines(ext) }
89
- end
90
-
91
- # Returns all processors to run on the path.
92
- def processors
93
- environment.preprocessors(content_type) +
94
- engines.reverse +
95
- environment.postprocessors(content_type)
96
- end
97
-
98
- # Returns the content type for the pathname. Falls back to `application/octet-stream`.
99
- def content_type
100
- @content_type ||= begin
101
- if format_extension.nil?
102
- engine_content_type || 'application/octet-stream'
103
- else
104
- @environment.mime_types(format_extension) ||
105
- engine_content_type ||
106
- 'application/octet-stream'
107
- end
108
- end
109
- end
110
-
111
- private
112
- # Returns implicit engine content type.
113
- #
114
- # `.coffee` files carry an implicit `application/javascript`
115
- # content type.
116
- def engine_content_type
117
- engines.reverse.each do |engine|
118
- if engine.respond_to?(:default_mime_type) && engine.default_mime_type
119
- return engine.default_mime_type
120
- end
121
- end
122
- nil
123
- end
124
-
125
- def engine_format_extension
126
- if content_type = engine_content_type
127
- environment.extension_for_mime_type(content_type)
128
- end
129
- end
130
- end
131
- end