sprockets 3.7.2 → 4.0.0
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 +42 -270
- data/README.md +443 -320
- data/bin/sprockets +11 -7
- data/lib/rake/sprocketstask.rb +3 -2
- data/lib/sprockets/add_source_map_comment_to_asset_processor.rb +60 -0
- data/lib/sprockets/asset.rb +16 -21
- data/lib/sprockets/autoload/babel.rb +8 -0
- data/lib/sprockets/autoload/closure.rb +1 -0
- data/lib/sprockets/autoload/coffee_script.rb +1 -0
- data/lib/sprockets/autoload/eco.rb +1 -0
- data/lib/sprockets/autoload/ejs.rb +1 -0
- data/lib/sprockets/autoload/jsminc.rb +8 -0
- data/lib/sprockets/autoload/sass.rb +1 -0
- data/lib/sprockets/autoload/sassc.rb +8 -0
- data/lib/sprockets/autoload/uglifier.rb +1 -0
- data/lib/sprockets/autoload/yui.rb +1 -0
- data/lib/sprockets/autoload/zopfli.rb +7 -0
- data/lib/sprockets/autoload.rb +5 -0
- data/lib/sprockets/babel_processor.rb +66 -0
- data/lib/sprockets/base.rb +47 -10
- data/lib/sprockets/bower.rb +5 -2
- data/lib/sprockets/bundle.rb +40 -4
- data/lib/sprockets/cache/file_store.rb +25 -3
- data/lib/sprockets/cache/memory_store.rb +9 -0
- data/lib/sprockets/cache/null_store.rb +8 -0
- data/lib/sprockets/cache.rb +36 -1
- data/lib/sprockets/cached_environment.rb +14 -19
- data/lib/sprockets/closure_compressor.rb +1 -0
- data/lib/sprockets/coffee_script_processor.rb +18 -4
- data/lib/sprockets/compressing.rb +43 -3
- data/lib/sprockets/configuration.rb +3 -7
- data/lib/sprockets/context.rb +97 -24
- data/lib/sprockets/dependencies.rb +1 -0
- data/lib/sprockets/digest_utils.rb +25 -5
- data/lib/sprockets/directive_processor.rb +45 -35
- data/lib/sprockets/eco_processor.rb +1 -0
- data/lib/sprockets/ejs_processor.rb +1 -0
- data/lib/sprockets/encoding_utils.rb +1 -0
- data/lib/sprockets/environment.rb +9 -4
- data/lib/sprockets/erb_processor.rb +28 -21
- data/lib/sprockets/errors.rb +1 -0
- data/lib/sprockets/exporters/base.rb +72 -0
- data/lib/sprockets/exporters/file_exporter.rb +24 -0
- data/lib/sprockets/exporters/zlib_exporter.rb +33 -0
- data/lib/sprockets/exporters/zopfli_exporter.rb +14 -0
- data/lib/sprockets/exporting.rb +73 -0
- data/lib/sprockets/file_reader.rb +1 -0
- data/lib/sprockets/http_utils.rb +25 -7
- data/lib/sprockets/jsminc_compressor.rb +32 -0
- data/lib/sprockets/jst_processor.rb +11 -10
- data/lib/sprockets/loader.rb +85 -67
- data/lib/sprockets/manifest.rb +64 -62
- data/lib/sprockets/manifest_utils.rb +9 -6
- data/lib/sprockets/mime.rb +8 -42
- data/lib/sprockets/npm.rb +52 -0
- data/lib/sprockets/path_dependency_utils.rb +3 -11
- data/lib/sprockets/path_digest_utils.rb +2 -1
- data/lib/sprockets/path_utils.rb +87 -7
- data/lib/sprockets/paths.rb +1 -0
- data/lib/sprockets/preprocessors/default_source_map.rb +49 -0
- data/lib/sprockets/processing.rb +31 -61
- data/lib/sprockets/processor_utils.rb +24 -35
- data/lib/sprockets/resolve.rb +177 -93
- data/lib/sprockets/sass_cache_store.rb +2 -6
- data/lib/sprockets/sass_compressor.rb +13 -1
- data/lib/sprockets/sass_functions.rb +1 -0
- data/lib/sprockets/sass_importer.rb +1 -0
- data/lib/sprockets/sass_processor.rb +30 -9
- data/lib/sprockets/sassc_compressor.rb +56 -0
- data/lib/sprockets/sassc_processor.rb +297 -0
- data/lib/sprockets/server.rb +26 -23
- data/lib/sprockets/source_map_processor.rb +66 -0
- data/lib/sprockets/source_map_utils.rb +483 -0
- data/lib/sprockets/transformers.rb +63 -35
- data/lib/sprockets/uglifier_compressor.rb +21 -11
- data/lib/sprockets/unloaded_asset.rb +13 -11
- data/lib/sprockets/uri_tar.rb +1 -0
- data/lib/sprockets/uri_utils.rb +11 -8
- data/lib/sprockets/utils/gzip.rb +46 -14
- data/lib/sprockets/utils.rb +41 -74
- data/lib/sprockets/version.rb +2 -1
- data/lib/sprockets/yui_compressor.rb +1 -0
- data/lib/sprockets.rb +99 -39
- metadata +127 -23
- data/LICENSE +0 -21
- data/lib/sprockets/coffee_script_template.rb +0 -17
- data/lib/sprockets/deprecation.rb +0 -90
- data/lib/sprockets/eco_template.rb +0 -17
- data/lib/sprockets/ejs_template.rb +0 -17
- data/lib/sprockets/engines.rb +0 -92
- data/lib/sprockets/erb_template.rb +0 -11
- data/lib/sprockets/legacy.rb +0 -330
- data/lib/sprockets/legacy_proc_processor.rb +0 -35
- data/lib/sprockets/legacy_tilt_processor.rb +0 -29
- data/lib/sprockets/sass_template.rb +0 -19
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sprockets
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Stephenson
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2019-10-08 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rack
|
|
@@ -45,6 +45,34 @@ dependencies:
|
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: '1.0'
|
|
48
|
+
- !ruby/object:Gem::Dependency
|
|
49
|
+
name: m
|
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
type: :development
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
63
|
+
name: babel-transpiler
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0.6'
|
|
69
|
+
type: :development
|
|
70
|
+
prerelease: false
|
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0.6'
|
|
48
76
|
- !ruby/object:Gem::Dependency
|
|
49
77
|
name: closure-compiler
|
|
50
78
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -129,6 +157,34 @@ dependencies:
|
|
|
129
157
|
- - "~>"
|
|
130
158
|
- !ruby/object:Gem::Version
|
|
131
159
|
version: '2.0'
|
|
160
|
+
- !ruby/object:Gem::Dependency
|
|
161
|
+
name: jsminc
|
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '1.1'
|
|
167
|
+
type: :development
|
|
168
|
+
prerelease: false
|
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '1.1'
|
|
174
|
+
- !ruby/object:Gem::Dependency
|
|
175
|
+
name: timecop
|
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 0.9.1
|
|
181
|
+
type: :development
|
|
182
|
+
prerelease: false
|
|
183
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - "~>"
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: 0.9.1
|
|
132
188
|
- !ruby/object:Gem::Dependency
|
|
133
189
|
name: minitest
|
|
134
190
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -177,40 +233,54 @@ dependencies:
|
|
|
177
233
|
requirements:
|
|
178
234
|
- - "~>"
|
|
179
235
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
236
|
+
version: '12.0'
|
|
181
237
|
type: :development
|
|
182
238
|
prerelease: false
|
|
183
239
|
version_requirements: !ruby/object:Gem::Requirement
|
|
184
240
|
requirements:
|
|
185
241
|
- - "~>"
|
|
186
242
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '
|
|
243
|
+
version: '12.0'
|
|
188
244
|
- !ruby/object:Gem::Dependency
|
|
189
245
|
name: sass
|
|
190
246
|
requirement: !ruby/object:Gem::Requirement
|
|
191
247
|
requirements:
|
|
192
248
|
- - "~>"
|
|
193
249
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '3.
|
|
250
|
+
version: '3.4'
|
|
195
251
|
type: :development
|
|
196
252
|
prerelease: false
|
|
197
253
|
version_requirements: !ruby/object:Gem::Requirement
|
|
198
254
|
requirements:
|
|
199
255
|
- - "~>"
|
|
200
256
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '3.
|
|
257
|
+
version: '3.4'
|
|
202
258
|
- !ruby/object:Gem::Dependency
|
|
203
|
-
name:
|
|
259
|
+
name: sassc
|
|
204
260
|
requirement: !ruby/object:Gem::Requirement
|
|
205
261
|
requirements:
|
|
206
262
|
- - "~>"
|
|
207
263
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '2.
|
|
264
|
+
version: '2.0'
|
|
209
265
|
type: :development
|
|
210
266
|
prerelease: false
|
|
211
267
|
version_requirements: !ruby/object:Gem::Requirement
|
|
212
268
|
requirements:
|
|
213
269
|
- - "~>"
|
|
270
|
+
- !ruby/object:Gem::Version
|
|
271
|
+
version: '2.0'
|
|
272
|
+
- !ruby/object:Gem::Dependency
|
|
273
|
+
name: uglifier
|
|
274
|
+
requirement: !ruby/object:Gem::Requirement
|
|
275
|
+
requirements:
|
|
276
|
+
- - ">="
|
|
277
|
+
- !ruby/object:Gem::Version
|
|
278
|
+
version: '2.3'
|
|
279
|
+
type: :development
|
|
280
|
+
prerelease: false
|
|
281
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
282
|
+
requirements:
|
|
283
|
+
- - ">="
|
|
214
284
|
- !ruby/object:Gem::Version
|
|
215
285
|
version: '2.3'
|
|
216
286
|
- !ruby/object:Gem::Dependency
|
|
@@ -227,8 +297,36 @@ dependencies:
|
|
|
227
297
|
- - "~>"
|
|
228
298
|
- !ruby/object:Gem::Version
|
|
229
299
|
version: '0.12'
|
|
300
|
+
- !ruby/object:Gem::Dependency
|
|
301
|
+
name: zopfli
|
|
302
|
+
requirement: !ruby/object:Gem::Requirement
|
|
303
|
+
requirements:
|
|
304
|
+
- - "~>"
|
|
305
|
+
- !ruby/object:Gem::Version
|
|
306
|
+
version: 0.0.4
|
|
307
|
+
type: :development
|
|
308
|
+
prerelease: false
|
|
309
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
310
|
+
requirements:
|
|
311
|
+
- - "~>"
|
|
312
|
+
- !ruby/object:Gem::Version
|
|
313
|
+
version: 0.0.4
|
|
314
|
+
- !ruby/object:Gem::Dependency
|
|
315
|
+
name: rubocop-performance
|
|
316
|
+
requirement: !ruby/object:Gem::Requirement
|
|
317
|
+
requirements:
|
|
318
|
+
- - "~>"
|
|
319
|
+
- !ruby/object:Gem::Version
|
|
320
|
+
version: '1.3'
|
|
321
|
+
type: :development
|
|
322
|
+
prerelease: false
|
|
323
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
324
|
+
requirements:
|
|
325
|
+
- - "~>"
|
|
326
|
+
- !ruby/object:Gem::Version
|
|
327
|
+
version: '1.3'
|
|
230
328
|
description: Sprockets is a Rack-based asset packaging system that concatenates and
|
|
231
|
-
serves JavaScript, CoffeeScript, CSS,
|
|
329
|
+
serves JavaScript, CoffeeScript, CSS, Sass, and SCSS.
|
|
232
330
|
email:
|
|
233
331
|
- sstephenson@gmail.com
|
|
234
332
|
- josh@joshpeek.com
|
|
@@ -238,20 +336,25 @@ extensions: []
|
|
|
238
336
|
extra_rdoc_files: []
|
|
239
337
|
files:
|
|
240
338
|
- CHANGELOG.md
|
|
241
|
-
- LICENSE
|
|
242
339
|
- README.md
|
|
243
340
|
- bin/sprockets
|
|
244
341
|
- lib/rake/sprocketstask.rb
|
|
245
342
|
- lib/sprockets.rb
|
|
343
|
+
- lib/sprockets/add_source_map_comment_to_asset_processor.rb
|
|
246
344
|
- lib/sprockets/asset.rb
|
|
247
345
|
- lib/sprockets/autoload.rb
|
|
346
|
+
- lib/sprockets/autoload/babel.rb
|
|
248
347
|
- lib/sprockets/autoload/closure.rb
|
|
249
348
|
- lib/sprockets/autoload/coffee_script.rb
|
|
250
349
|
- lib/sprockets/autoload/eco.rb
|
|
251
350
|
- lib/sprockets/autoload/ejs.rb
|
|
351
|
+
- lib/sprockets/autoload/jsminc.rb
|
|
252
352
|
- lib/sprockets/autoload/sass.rb
|
|
353
|
+
- lib/sprockets/autoload/sassc.rb
|
|
253
354
|
- lib/sprockets/autoload/uglifier.rb
|
|
254
355
|
- lib/sprockets/autoload/yui.rb
|
|
356
|
+
- lib/sprockets/autoload/zopfli.rb
|
|
357
|
+
- lib/sprockets/babel_processor.rb
|
|
255
358
|
- lib/sprockets/base.rb
|
|
256
359
|
- lib/sprockets/bower.rb
|
|
257
360
|
- lib/sprockets/bundle.rb
|
|
@@ -262,38 +365,37 @@ files:
|
|
|
262
365
|
- lib/sprockets/cached_environment.rb
|
|
263
366
|
- lib/sprockets/closure_compressor.rb
|
|
264
367
|
- lib/sprockets/coffee_script_processor.rb
|
|
265
|
-
- lib/sprockets/coffee_script_template.rb
|
|
266
368
|
- lib/sprockets/compressing.rb
|
|
267
369
|
- lib/sprockets/configuration.rb
|
|
268
370
|
- lib/sprockets/context.rb
|
|
269
371
|
- lib/sprockets/dependencies.rb
|
|
270
|
-
- lib/sprockets/deprecation.rb
|
|
271
372
|
- lib/sprockets/digest_utils.rb
|
|
272
373
|
- lib/sprockets/directive_processor.rb
|
|
273
374
|
- lib/sprockets/eco_processor.rb
|
|
274
|
-
- lib/sprockets/eco_template.rb
|
|
275
375
|
- lib/sprockets/ejs_processor.rb
|
|
276
|
-
- lib/sprockets/ejs_template.rb
|
|
277
376
|
- lib/sprockets/encoding_utils.rb
|
|
278
|
-
- lib/sprockets/engines.rb
|
|
279
377
|
- lib/sprockets/environment.rb
|
|
280
378
|
- lib/sprockets/erb_processor.rb
|
|
281
|
-
- lib/sprockets/erb_template.rb
|
|
282
379
|
- lib/sprockets/errors.rb
|
|
380
|
+
- lib/sprockets/exporters/base.rb
|
|
381
|
+
- lib/sprockets/exporters/file_exporter.rb
|
|
382
|
+
- lib/sprockets/exporters/zlib_exporter.rb
|
|
383
|
+
- lib/sprockets/exporters/zopfli_exporter.rb
|
|
384
|
+
- lib/sprockets/exporting.rb
|
|
283
385
|
- lib/sprockets/file_reader.rb
|
|
284
386
|
- lib/sprockets/http_utils.rb
|
|
387
|
+
- lib/sprockets/jsminc_compressor.rb
|
|
285
388
|
- lib/sprockets/jst_processor.rb
|
|
286
|
-
- lib/sprockets/legacy.rb
|
|
287
|
-
- lib/sprockets/legacy_proc_processor.rb
|
|
288
|
-
- lib/sprockets/legacy_tilt_processor.rb
|
|
289
389
|
- lib/sprockets/loader.rb
|
|
290
390
|
- lib/sprockets/manifest.rb
|
|
291
391
|
- lib/sprockets/manifest_utils.rb
|
|
292
392
|
- lib/sprockets/mime.rb
|
|
393
|
+
- lib/sprockets/npm.rb
|
|
293
394
|
- lib/sprockets/path_dependency_utils.rb
|
|
294
395
|
- lib/sprockets/path_digest_utils.rb
|
|
295
396
|
- lib/sprockets/path_utils.rb
|
|
296
397
|
- lib/sprockets/paths.rb
|
|
398
|
+
- lib/sprockets/preprocessors/default_source_map.rb
|
|
297
399
|
- lib/sprockets/processing.rb
|
|
298
400
|
- lib/sprockets/processor_utils.rb
|
|
299
401
|
- lib/sprockets/resolve.rb
|
|
@@ -302,8 +404,11 @@ files:
|
|
|
302
404
|
- lib/sprockets/sass_functions.rb
|
|
303
405
|
- lib/sprockets/sass_importer.rb
|
|
304
406
|
- lib/sprockets/sass_processor.rb
|
|
305
|
-
- lib/sprockets/
|
|
407
|
+
- lib/sprockets/sassc_compressor.rb
|
|
408
|
+
- lib/sprockets/sassc_processor.rb
|
|
306
409
|
- lib/sprockets/server.rb
|
|
410
|
+
- lib/sprockets/source_map_processor.rb
|
|
411
|
+
- lib/sprockets/source_map_utils.rb
|
|
307
412
|
- lib/sprockets/transformers.rb
|
|
308
413
|
- lib/sprockets/uglifier_compressor.rb
|
|
309
414
|
- lib/sprockets/unloaded_asset.rb
|
|
@@ -325,15 +430,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
325
430
|
requirements:
|
|
326
431
|
- - ">="
|
|
327
432
|
- !ruby/object:Gem::Version
|
|
328
|
-
version:
|
|
433
|
+
version: 2.5.0
|
|
329
434
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
435
|
requirements:
|
|
331
436
|
- - ">="
|
|
332
437
|
- !ruby/object:Gem::Version
|
|
333
438
|
version: '0'
|
|
334
439
|
requirements: []
|
|
335
|
-
|
|
336
|
-
rubygems_version: 2.7.6
|
|
440
|
+
rubygems_version: 3.0.3
|
|
337
441
|
signing_key:
|
|
338
442
|
specification_version: 4
|
|
339
443
|
summary: Rack-based asset packaging system
|
data/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2014 Sam Stephenson
|
|
2
|
-
Copyright (c) 2014 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.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require 'sprockets/coffee_script_processor'
|
|
2
|
-
|
|
3
|
-
module Sprockets
|
|
4
|
-
# Deprecated
|
|
5
|
-
module CoffeeScriptTemplate
|
|
6
|
-
VERSION = CoffeeScriptProcessor::VERSION
|
|
7
|
-
|
|
8
|
-
def self.cache_key
|
|
9
|
-
CoffeeScriptProcessor.cache_key
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.call(*args)
|
|
13
|
-
Deprecation.new.warn "CoffeeScriptTemplate is deprecated please use CoffeeScriptProcessor instead"
|
|
14
|
-
CoffeeScriptProcessor.call(*args)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
module Sprockets
|
|
2
|
-
class Deprecation
|
|
3
|
-
THREAD_LOCAL__SILENCE_KEY = "_sprockets_deprecation_silence".freeze
|
|
4
|
-
DEFAULT_BEHAVIORS = {
|
|
5
|
-
raise: ->(message, callstack) {
|
|
6
|
-
e = DeprecationException.new(message)
|
|
7
|
-
e.set_backtrace(callstack.map(&:to_s))
|
|
8
|
-
raise e
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
stderr: ->(message, callstack) {
|
|
12
|
-
$stderr.puts(message)
|
|
13
|
-
},
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
attr_reader :callstack
|
|
17
|
-
|
|
18
|
-
def self.silence(&block)
|
|
19
|
-
Thread.current[THREAD_LOCAL__SILENCE_KEY] = true
|
|
20
|
-
block.call
|
|
21
|
-
ensure
|
|
22
|
-
Thread.current[THREAD_LOCAL__SILENCE_KEY] = false
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def initialize(callstack = nil)
|
|
26
|
-
@callstack = callstack || caller(2)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def warn(message)
|
|
30
|
-
return if Thread.current[THREAD_LOCAL__SILENCE_KEY]
|
|
31
|
-
deprecation_message(message).tap do |m|
|
|
32
|
-
behavior.each { |b| b.call(m, callstack) }
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
private
|
|
37
|
-
def behavior
|
|
38
|
-
@behavior ||= [DEFAULT_BEHAVIORS[:stderr]]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def behavior=(behavior)
|
|
42
|
-
@behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || b }
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def deprecation_message(message = nil)
|
|
46
|
-
message ||= "You are using deprecated behavior which will be removed from the next major or minor release."
|
|
47
|
-
"DEPRECATION WARNING: #{message} #{ deprecation_caller_message }"
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def deprecation_caller_message
|
|
51
|
-
file, line, method = extract_callstack
|
|
52
|
-
if file
|
|
53
|
-
if line && method
|
|
54
|
-
"(called from #{method} at #{file}:#{line})"
|
|
55
|
-
else
|
|
56
|
-
"(called from #{file}:#{line})"
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
SPROCKETS_GEM_ROOT = File.expand_path("../../../../..", __FILE__) + "/"
|
|
62
|
-
|
|
63
|
-
def ignored_callstack(path)
|
|
64
|
-
path.start_with?(SPROCKETS_GEM_ROOT) || path.start_with?(RbConfig::CONFIG['rubylibdir'])
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def extract_callstack
|
|
68
|
-
return _extract_callstack if callstack.first.is_a? String
|
|
69
|
-
|
|
70
|
-
offending_line = callstack.find { |frame|
|
|
71
|
-
frame.absolute_path && !ignored_callstack(frame.absolute_path)
|
|
72
|
-
} || callstack.first
|
|
73
|
-
|
|
74
|
-
[offending_line.path, offending_line.lineno, offending_line.label]
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def _extract_callstack
|
|
78
|
-
offending_line = callstack.find { |line| !ignored_callstack(line) } || callstack.first
|
|
79
|
-
|
|
80
|
-
if offending_line
|
|
81
|
-
if md = offending_line.match(/^(.+?):(\d+)(?::in `(.*?)')?/)
|
|
82
|
-
md.captures
|
|
83
|
-
else
|
|
84
|
-
offending_line
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
private_constant :Deprecation
|
|
90
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require 'sprockets/eco_processor'
|
|
2
|
-
|
|
3
|
-
module Sprockets
|
|
4
|
-
# Deprecated
|
|
5
|
-
module EcoTemplate
|
|
6
|
-
VERSION = EcoProcessor::VERSION
|
|
7
|
-
|
|
8
|
-
def self.cache_key
|
|
9
|
-
EcoProcessor.cache_key
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.call(*args)
|
|
13
|
-
Deprecation.new.warn "EcoTemplate is deprecated please use EcoProcessor instead"
|
|
14
|
-
EcoProcessor.call(*args)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require 'sprockets/ejs_processor'
|
|
2
|
-
|
|
3
|
-
module Sprockets
|
|
4
|
-
# Deprecated
|
|
5
|
-
module EjsTemplate
|
|
6
|
-
VERSION = EjsProcessor::VERSION
|
|
7
|
-
|
|
8
|
-
def self.cache_key
|
|
9
|
-
EjsProcessor.cache_key
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.call(*args)
|
|
13
|
-
Deprecation.new.warn "EjsTemplate is deprecated please use EjsProcessor instead"
|
|
14
|
-
EjsProcessor.call(*args)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
data/lib/sprockets/engines.rb
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
require 'sprockets/legacy_tilt_processor'
|
|
2
|
-
require 'sprockets/utils'
|
|
3
|
-
|
|
4
|
-
module Sprockets
|
|
5
|
-
# `Engines` provides a global and `Environment` instance registry.
|
|
6
|
-
#
|
|
7
|
-
# An engine is a type of processor that is bound to a filename
|
|
8
|
-
# extension. `application.js.coffee` indicates that the
|
|
9
|
-
# `CoffeeScriptProcessor` engine will be ran on the file.
|
|
10
|
-
#
|
|
11
|
-
# Extensions can be stacked and will be evaulated from right to
|
|
12
|
-
# left. `application.js.coffee.erb` will first run `ERBProcessor`
|
|
13
|
-
# then `CoffeeScriptProcessor`.
|
|
14
|
-
#
|
|
15
|
-
# All `Engine`s must follow the `Template` interface. It is
|
|
16
|
-
# recommended to subclass `Template`.
|
|
17
|
-
#
|
|
18
|
-
# Its recommended that you register engine changes on your local
|
|
19
|
-
# `Environment` instance.
|
|
20
|
-
#
|
|
21
|
-
# environment.register_engine '.foo', FooProcessor
|
|
22
|
-
#
|
|
23
|
-
# The global registry is exposed for plugins to register themselves.
|
|
24
|
-
#
|
|
25
|
-
# Sprockets.register_engine '.sass', SassProcessor
|
|
26
|
-
#
|
|
27
|
-
module Engines
|
|
28
|
-
include Utils
|
|
29
|
-
|
|
30
|
-
# Returns a `Hash` of `Engine`s registered on the `Environment`.
|
|
31
|
-
# If an `ext` argument is supplied, the `Engine` associated with
|
|
32
|
-
# that extension will be returned.
|
|
33
|
-
#
|
|
34
|
-
# environment.engines
|
|
35
|
-
# # => {".coffee" => CoffeeScriptProcessor, ".sass" => SassProcessor, ...}
|
|
36
|
-
#
|
|
37
|
-
def engines
|
|
38
|
-
config[:engines]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# Internal: Returns a `Hash` of engine extensions to mime types.
|
|
42
|
-
#
|
|
43
|
-
# # => { '.coffee' => 'application/javascript' }
|
|
44
|
-
def engine_mime_types
|
|
45
|
-
config[:engine_mime_types]
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Registers a new Engine `klass` for `ext`. If the `ext` already
|
|
49
|
-
# has an engine registered, it will be overridden.
|
|
50
|
-
#
|
|
51
|
-
# environment.register_engine '.coffee', CoffeeScriptProcessor
|
|
52
|
-
#
|
|
53
|
-
def register_engine(ext, klass, options = {})
|
|
54
|
-
unless options[:silence_deprecation]
|
|
55
|
-
msg = <<-MSG
|
|
56
|
-
Sprockets method `register_engine` is deprecated.
|
|
57
|
-
Please register a mime type using `register_mime_type` then
|
|
58
|
-
use `register_compressor` or `register_transformer`.
|
|
59
|
-
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
|
|
60
|
-
MSG
|
|
61
|
-
|
|
62
|
-
Deprecation.new([caller.first]).warn(msg)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
ext = Sprockets::Utils.normalize_extension(ext)
|
|
66
|
-
|
|
67
|
-
self.computed_config = {}
|
|
68
|
-
|
|
69
|
-
if klass.respond_to?(:call)
|
|
70
|
-
processor = klass
|
|
71
|
-
self.config = hash_reassoc(config, :engines) do |engines|
|
|
72
|
-
engines.merge(ext => klass)
|
|
73
|
-
end
|
|
74
|
-
if options[:mime_type]
|
|
75
|
-
self.config = hash_reassoc(config, :engine_mime_types) do |mime_types|
|
|
76
|
-
mime_types.merge(ext.to_s => options[:mime_type])
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
else
|
|
80
|
-
processor = LegacyTiltProcessor.new(klass)
|
|
81
|
-
self.config = hash_reassoc(config, :engines) do |engines|
|
|
82
|
-
engines.merge(ext => processor)
|
|
83
|
-
end
|
|
84
|
-
if klass.respond_to?(:default_mime_type) && klass.default_mime_type
|
|
85
|
-
self.config = hash_reassoc(config, :engine_mime_types) do |mime_types|
|
|
86
|
-
mime_types.merge(ext.to_s => klass.default_mime_type)
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|