sprockets 3.0.3 → 4.2.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.
Files changed (95) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +101 -0
  3. data/{LICENSE → MIT-LICENSE} +2 -2
  4. data/README.md +531 -276
  5. data/bin/sprockets +12 -7
  6. data/lib/rake/sprocketstask.rb +9 -4
  7. data/lib/sprockets/add_source_map_comment_to_asset_processor.rb +60 -0
  8. data/lib/sprockets/asset.rb +41 -28
  9. data/lib/sprockets/autoload/babel.rb +8 -0
  10. data/lib/sprockets/autoload/closure.rb +1 -0
  11. data/lib/sprockets/autoload/coffee_script.rb +1 -0
  12. data/lib/sprockets/autoload/eco.rb +1 -0
  13. data/lib/sprockets/autoload/ejs.rb +1 -0
  14. data/lib/sprockets/autoload/jsminc.rb +8 -0
  15. data/lib/sprockets/autoload/sass.rb +1 -0
  16. data/lib/sprockets/autoload/sassc.rb +8 -0
  17. data/lib/sprockets/autoload/uglifier.rb +1 -0
  18. data/lib/sprockets/autoload/yui.rb +1 -0
  19. data/lib/sprockets/autoload/zopfli.rb +7 -0
  20. data/lib/sprockets/autoload.rb +5 -0
  21. data/lib/sprockets/babel_processor.rb +66 -0
  22. data/lib/sprockets/base.rb +61 -13
  23. data/lib/sprockets/bower.rb +6 -3
  24. data/lib/sprockets/bundle.rb +41 -5
  25. data/lib/sprockets/cache/file_store.rb +32 -7
  26. data/lib/sprockets/cache/memory_store.rb +28 -10
  27. data/lib/sprockets/cache/null_store.rb +8 -0
  28. data/lib/sprockets/cache.rb +43 -6
  29. data/lib/sprockets/cached_environment.rb +15 -20
  30. data/lib/sprockets/closure_compressor.rb +6 -11
  31. data/lib/sprockets/coffee_script_processor.rb +20 -6
  32. data/lib/sprockets/compressing.rb +62 -2
  33. data/lib/sprockets/configuration.rb +5 -9
  34. data/lib/sprockets/context.rb +99 -25
  35. data/lib/sprockets/dependencies.rb +10 -9
  36. data/lib/sprockets/digest_utils.rb +103 -62
  37. data/lib/sprockets/directive_processor.rb +64 -36
  38. data/lib/sprockets/eco_processor.rb +4 -3
  39. data/lib/sprockets/ejs_processor.rb +4 -3
  40. data/lib/sprockets/encoding_utils.rb +1 -0
  41. data/lib/sprockets/environment.rb +9 -4
  42. data/lib/sprockets/erb_processor.rb +34 -21
  43. data/lib/sprockets/errors.rb +1 -0
  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 +1 -0
  50. data/lib/sprockets/http_utils.rb +25 -7
  51. data/lib/sprockets/jsminc_compressor.rb +32 -0
  52. data/lib/sprockets/jst_processor.rb +11 -10
  53. data/lib/sprockets/loader.rb +244 -62
  54. data/lib/sprockets/manifest.rb +100 -46
  55. data/lib/sprockets/manifest_utils.rb +9 -6
  56. data/lib/sprockets/mime.rb +8 -42
  57. data/lib/sprockets/npm.rb +52 -0
  58. data/lib/sprockets/path_dependency_utils.rb +3 -11
  59. data/lib/sprockets/path_digest_utils.rb +2 -1
  60. data/lib/sprockets/path_utils.rb +107 -22
  61. data/lib/sprockets/paths.rb +1 -0
  62. data/lib/sprockets/preprocessors/default_source_map.rb +49 -0
  63. data/lib/sprockets/processing.rb +32 -52
  64. data/lib/sprockets/processor_utils.rb +38 -39
  65. data/lib/sprockets/resolve.rb +177 -97
  66. data/lib/sprockets/sass_cache_store.rb +1 -0
  67. data/lib/sprockets/sass_compressor.rb +21 -17
  68. data/lib/sprockets/sass_functions.rb +1 -0
  69. data/lib/sprockets/sass_importer.rb +1 -0
  70. data/lib/sprockets/sass_processor.rb +46 -18
  71. data/lib/sprockets/sassc_compressor.rb +56 -0
  72. data/lib/sprockets/sassc_processor.rb +297 -0
  73. data/lib/sprockets/server.rb +77 -44
  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 +63 -35
  77. data/lib/sprockets/uglifier_compressor.rb +23 -20
  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 +14 -14
  81. data/lib/sprockets/utils/gzip.rb +99 -0
  82. data/lib/sprockets/utils.rb +63 -71
  83. data/lib/sprockets/version.rb +2 -1
  84. data/lib/sprockets/yui_compressor.rb +5 -14
  85. data/lib/sprockets.rb +105 -33
  86. metadata +157 -27
  87. data/lib/sprockets/coffee_script_template.rb +0 -6
  88. data/lib/sprockets/eco_template.rb +0 -6
  89. data/lib/sprockets/ejs_template.rb +0 -6
  90. data/lib/sprockets/engines.rb +0 -81
  91. data/lib/sprockets/erb_template.rb +0 -6
  92. data/lib/sprockets/legacy.rb +0 -314
  93. data/lib/sprockets/legacy_proc_processor.rb +0 -35
  94. data/lib/sprockets/legacy_tilt_processor.rb +0 -29
  95. data/lib/sprockets/sass_template.rb +0 -7
data/lib/sprockets.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
2
4
  require 'sprockets/version'
3
5
  require 'sprockets/cache'
4
6
  require 'sprockets/environment'
@@ -22,20 +24,21 @@ module Sprockets
22
24
  dependencies: Set.new.freeze,
23
25
  dependency_resolvers: {}.freeze,
24
26
  digest_class: Digest::SHA256,
25
- engine_mime_types: {}.freeze,
26
- engines: {}.freeze,
27
27
  mime_exts: {}.freeze,
28
28
  mime_types: {}.freeze,
29
29
  paths: [].freeze,
30
30
  pipelines: {}.freeze,
31
+ pipeline_exts: {}.freeze,
31
32
  postprocessors: Hash.new { |h, k| [].freeze }.freeze,
32
33
  preprocessors: Hash.new { |h, k| [].freeze }.freeze,
33
- registered_transformers: Hash.new { |h, k| {}.freeze }.freeze,
34
- root: File.expand_path('..', __FILE__).freeze,
34
+ registered_transformers: [].freeze,
35
+ root: __dir__.dup.freeze,
35
36
  transformers: Hash.new { |h, k| {}.freeze }.freeze,
36
- version: ""
37
+ exporters: Hash.new { |h, k| Set.new.freeze }.freeze,
38
+ version: "",
39
+ gzip_enabled: true,
40
+ export_concurrent: true
37
41
  }.freeze
38
- self.computed_config = {}
39
42
 
40
43
  @context_class = Context
41
44
 
@@ -46,7 +49,9 @@ module Sprockets
46
49
  # Common asset text types
47
50
  register_mime_type 'application/javascript', extensions: ['.js'], charset: :unicode
48
51
  register_mime_type 'application/json', extensions: ['.json'], charset: :unicode
52
+ register_mime_type 'application/ruby', extensions: ['.rb']
49
53
  register_mime_type 'application/xml', extensions: ['.xml']
54
+ register_mime_type 'application/manifest+json', extensions: ['.webmanifest']
50
55
  register_mime_type 'text/css', extensions: ['.css'], charset: :css
51
56
  register_mime_type 'text/html', extensions: ['.html', '.htm'], charset: :html
52
57
  register_mime_type 'text/plain', extensions: ['.txt', '.text']
@@ -68,83 +73,141 @@ module Sprockets
68
73
  register_mime_type 'audio/aiff', extensions: ['.aiff']
69
74
  register_mime_type 'audio/mpeg', extensions: ['.mp3', '.mp2', '.m2a', '.m3a']
70
75
  register_mime_type 'application/ogg', extensions: ['.ogx']
76
+ register_mime_type 'audio/ogg', extensions: ['.ogg', '.oga']
71
77
  register_mime_type 'audio/midi', extensions: ['.midi', '.mid']
72
78
  register_mime_type 'video/avi', extensions: ['.avi']
73
79
  register_mime_type 'audio/wave', extensions: ['.wav', '.wave']
74
80
  register_mime_type 'video/mp4', extensions: ['.mp4', '.m4v']
81
+ register_mime_type 'audio/aac', extensions: ['.aac']
82
+ register_mime_type 'audio/mp4', extensions: ['.m4a']
83
+ register_mime_type 'audio/flac', extensions: ['.flac']
75
84
 
76
85
  # Common font types
77
86
  register_mime_type 'application/vnd.ms-fontobject', extensions: ['.eot']
87
+ register_mime_type 'application/x-font-opentype', extensions: ['.otf']
78
88
  register_mime_type 'application/x-font-ttf', extensions: ['.ttf']
79
89
  register_mime_type 'application/font-woff', extensions: ['.woff']
90
+ register_mime_type 'application/font-woff2', extensions: ['.woff2']
91
+
92
+ require 'sprockets/source_map_processor'
93
+ register_mime_type 'application/js-sourcemap+json', extensions: ['.js.map'], charset: :unicode
94
+ register_mime_type 'application/css-sourcemap+json', extensions: ['.css.map']
95
+ register_transformer 'application/javascript', 'application/js-sourcemap+json', SourceMapProcessor
96
+ register_transformer 'text/css', 'application/css-sourcemap+json', SourceMapProcessor
80
97
 
81
98
  register_pipeline :source do |env|
82
99
  []
83
100
  end
84
101
 
85
- register_pipeline :self do |env, type, file_type, engine_extnames|
86
- env.self_processors_for(type, file_type, engine_extnames)
102
+ register_pipeline :self do |env, type, file_type|
103
+ env.self_processors_for(type, file_type)
87
104
  end
88
105
 
89
- register_pipeline :default do |env, type, file_type, engine_extnames|
90
- env.default_processors_for(type, file_type, engine_extnames)
106
+ register_pipeline :default do |env, type, file_type|
107
+ env.default_processors_for(type, file_type)
108
+ end
109
+
110
+ require 'sprockets/add_source_map_comment_to_asset_processor'
111
+ register_pipeline :debug do
112
+ [AddSourceMapCommentToAssetProcessor]
91
113
  end
92
114
 
93
115
  require 'sprockets/directive_processor'
94
- register_preprocessor 'text/css', DirectiveProcessor.new(
95
- comments: ["//", ["/*", "*/"]]
96
- )
97
- register_preprocessor 'application/javascript', DirectiveProcessor.new(
98
- comments: ["//", ["/*", "*/"]] + ["#", ["###", "###"]]
99
- )
116
+ register_preprocessor 'text/css', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
117
+ register_preprocessor 'application/javascript', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
100
118
 
101
119
  require 'sprockets/bundle'
102
120
  register_bundle_processor 'application/javascript', Bundle
103
121
  register_bundle_processor 'text/css', Bundle
104
122
 
105
- register_bundle_metadata_reducer '*/*', :data, proc { "" }, :concat
106
- register_bundle_metadata_reducer 'application/javascript', :data, proc { "" }, Utils.method(:concat_javascript_sources)
123
+ register_bundle_metadata_reducer '*/*', :data, proc { +"" }, :concat
124
+ register_bundle_metadata_reducer 'application/javascript', :data, proc { +"" }, Utils.method(:concat_javascript_sources)
107
125
  register_bundle_metadata_reducer '*/*', :links, :+
126
+ register_bundle_metadata_reducer '*/*', :sources, proc { [] }, :+
108
127
 
109
128
  require 'sprockets/closure_compressor'
110
129
  require 'sprockets/sass_compressor'
130
+ require 'sprockets/sassc_compressor'
131
+ require 'sprockets/jsminc_compressor'
111
132
  require 'sprockets/uglifier_compressor'
112
133
  require 'sprockets/yui_compressor'
113
134
  register_compressor 'text/css', :sass, SassCompressor
135
+ register_compressor 'text/css', :sassc, SasscCompressor
114
136
  register_compressor 'text/css', :scss, SassCompressor
137
+ register_compressor 'text/css', :scssc, SasscCompressor
115
138
  register_compressor 'text/css', :yui, YUICompressor
116
139
  register_compressor 'application/javascript', :closure, ClosureCompressor
140
+ register_compressor 'application/javascript', :jsmin, JSMincCompressor
141
+ register_compressor 'application/javascript', :jsminc, JSMincCompressor
117
142
  register_compressor 'application/javascript', :uglifier, UglifierCompressor
118
143
  register_compressor 'application/javascript', :uglify, UglifierCompressor
119
144
  register_compressor 'application/javascript', :yui, YUICompressor
120
145
 
146
+ # Babel, TheFuture™ is now
147
+ require 'sprockets/babel_processor'
148
+ register_mime_type 'application/ecmascript-6', extensions: ['.es6'], charset: :unicode
149
+ register_transformer 'application/ecmascript-6', 'application/javascript', BabelProcessor
150
+ register_preprocessor 'application/ecmascript-6', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
151
+
121
152
  # Mmm, CoffeeScript
122
153
  require 'sprockets/coffee_script_processor'
123
- register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript'
154
+ register_mime_type 'text/coffeescript', extensions: ['.coffee', '.js.coffee']
155
+ register_transformer 'text/coffeescript', 'application/javascript', CoffeeScriptProcessor
156
+ register_preprocessor 'text/coffeescript', DirectiveProcessor.new(comments: ["#", ["###", "###"]])
124
157
 
125
- # JST engines
158
+ # JST processors
126
159
  require 'sprockets/eco_processor'
127
160
  require 'sprockets/ejs_processor'
128
161
  require 'sprockets/jst_processor'
129
- register_engine '.jst', JstProcessor, mime_type: 'application/javascript'
130
- register_engine '.eco', EcoProcessor, mime_type: 'application/javascript'
131
- register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript'
132
-
133
- # CSS engines
134
- require 'sprockets/sass_processor'
135
- register_engine '.sass', SassProcessor, mime_type: 'text/css'
136
- register_engine '.scss', ScssProcessor, mime_type: 'text/css'
162
+ register_mime_type 'text/eco', extensions: ['.eco', '.jst.eco']
163
+ register_mime_type 'text/ejs', extensions: ['.ejs', '.jst.ejs']
164
+ register_transformer 'text/eco', 'application/javascript+function', EcoProcessor
165
+ register_transformer 'text/ejs', 'application/javascript+function', EjsProcessor
166
+ register_transformer 'application/javascript+function', 'application/javascript', JstProcessor
167
+
168
+ # CSS processors
169
+ require 'sprockets/sassc_processor'
170
+ register_mime_type 'text/sass', extensions: ['.sass', '.css.sass']
171
+ register_mime_type 'text/scss', extensions: ['.scss', '.css.scss']
172
+ register_transformer 'text/sass', 'text/css', SasscProcessor
173
+ register_transformer 'text/scss', 'text/css', ScsscProcessor
174
+ register_preprocessor 'text/sass', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
175
+ register_preprocessor 'text/scss', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
137
176
  register_bundle_metadata_reducer 'text/css', :sass_dependencies, Set.new, :+
138
177
 
139
- # Other
178
+ # ERB
140
179
  require 'sprockets/erb_processor'
141
- register_engine '.erb', ERBProcessor, mime_type: 'text/plain'
180
+ register_transformer_suffix(%w(
181
+ application/ecmascript-6
182
+ application/javascript
183
+ application/json
184
+ application/manifest+json
185
+ application/xml
186
+ text/coffeescript
187
+ text/css
188
+ text/html
189
+ text/plain
190
+ text/sass
191
+ text/scss
192
+ text/yaml
193
+ text/eco
194
+ text/ejs
195
+ ), 'application/\2+ruby', '.erb', ERBProcessor)
196
+
197
+ register_mime_type 'application/html+ruby', extensions: ['.html.erb', '.erb', '.rhtml'], charset: :html
198
+ register_mime_type 'application/xml+ruby', extensions: ['.xml.erb', '.rxml']
199
+
200
+ require 'sprockets/exporters/file_exporter'
201
+ require 'sprockets/exporters/zlib_exporter'
202
+ require 'sprockets/exporters/zopfli_exporter'
203
+ register_exporter '*/*', Exporters::FileExporter
204
+ register_exporter '*/*', Exporters::ZlibExporter
142
205
 
143
206
  register_dependency_resolver 'environment-version' do |env|
144
207
  env.version
145
208
  end
146
209
  register_dependency_resolver 'environment-paths' do |env|
147
- env.paths
210
+ env.paths.map {|path| env.compress_from_root(path) }
148
211
  end
149
212
  register_dependency_resolver 'file-digest' do |env, str|
150
213
  env.file_digest(env.parse_file_digest_uri(str))
@@ -152,9 +215,18 @@ module Sprockets
152
215
  register_dependency_resolver 'processors' do |env, str|
153
216
  env.resolve_processors_cache_key_uri(str)
154
217
  end
218
+ register_dependency_resolver 'env' do |env, str|
219
+ _, var = str.split(':', 2)
220
+ ENV[var]
221
+ end
155
222
 
156
223
  depend_on 'environment-version'
157
224
  depend_on 'environment-paths'
158
- end
159
225
 
160
- require 'sprockets/legacy'
226
+ require 'sprockets/preprocessors/default_source_map'
227
+ register_preprocessor 'text/css', Preprocessors::DefaultSourceMap.new
228
+ register_preprocessor 'application/javascript', Preprocessors::DefaultSourceMap.new
229
+
230
+ register_bundle_metadata_reducer 'text/css', :map, proc { |input| { "version" => 3, "file" => PathUtils.split_subpath(input[:load_path], input[:filename]), "sections" => [] } }, SourceMapUtils.method(:concat_source_maps)
231
+ register_bundle_metadata_reducer 'application/javascript', :map, proc { |input| { "version" => 3, "file" => PathUtils.split_subpath(input[:load_path], input[:filename]), "sections" => [] } }, SourceMapUtils.method(:concat_source_maps)
232
+ end
metadata CHANGED
@@ -1,18 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 4.2.0
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: 2015-04-28 00:00:00.000000000 Z
12
+ date: 2022-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 2.2.4
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '4'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 2.2.4
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '4'
34
+ - !ruby/object:Gem::Dependency
35
+ name: concurrent-ruby
16
36
  requirement: !ruby/object:Gem::Requirement
17
37
  requirements:
18
38
  - - "~>"
@@ -25,6 +45,34 @@ dependencies:
25
45
  - - "~>"
26
46
  - !ruby/object:Gem::Version
27
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'
28
76
  - !ruby/object:Gem::Dependency
29
77
  name: closure-compiler
30
78
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +157,34 @@ dependencies:
109
157
  - - "~>"
110
158
  - !ruby/object:Gem::Version
111
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
112
188
  - !ruby/object:Gem::Dependency
113
189
  name: minitest
114
190
  requirement: !ruby/object:Gem::Requirement
@@ -143,54 +219,68 @@ dependencies:
143
219
  requirements:
144
220
  - - "~>"
145
221
  - !ruby/object:Gem::Version
146
- version: '0.6'
222
+ version: 2.0.0
147
223
  type: :development
148
224
  prerelease: false
149
225
  version_requirements: !ruby/object:Gem::Requirement
150
226
  requirements:
151
227
  - - "~>"
152
228
  - !ruby/object:Gem::Version
153
- version: '0.6'
229
+ version: 2.0.0
154
230
  - !ruby/object:Gem::Dependency
155
231
  name: rake
156
232
  requirement: !ruby/object:Gem::Requirement
157
233
  requirements:
158
234
  - - "~>"
159
235
  - !ruby/object:Gem::Version
160
- version: '10.0'
236
+ version: '12.0'
161
237
  type: :development
162
238
  prerelease: false
163
239
  version_requirements: !ruby/object:Gem::Requirement
164
240
  requirements:
165
241
  - - "~>"
166
242
  - !ruby/object:Gem::Version
167
- version: '10.0'
243
+ version: '12.0'
168
244
  - !ruby/object:Gem::Dependency
169
245
  name: sass
170
246
  requirement: !ruby/object:Gem::Requirement
171
247
  requirements:
172
248
  - - "~>"
173
249
  - !ruby/object:Gem::Version
174
- version: '3.1'
250
+ version: '3.4'
175
251
  type: :development
176
252
  prerelease: false
177
253
  version_requirements: !ruby/object:Gem::Requirement
178
254
  requirements:
179
255
  - - "~>"
180
256
  - !ruby/object:Gem::Version
181
- version: '3.1'
257
+ version: '3.4'
182
258
  - !ruby/object:Gem::Dependency
183
- name: uglifier
259
+ name: sassc
184
260
  requirement: !ruby/object:Gem::Requirement
185
261
  requirements:
186
262
  - - "~>"
187
263
  - !ruby/object:Gem::Version
188
- version: '2.3'
264
+ version: '2.0'
189
265
  type: :development
190
266
  prerelease: false
191
267
  version_requirements: !ruby/object:Gem::Requirement
192
268
  requirements:
193
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
+ - - ">="
194
284
  - !ruby/object:Gem::Version
195
285
  version: '2.3'
196
286
  - !ruby/object:Gem::Dependency
@@ -207,8 +297,36 @@ dependencies:
207
297
  - - "~>"
208
298
  - !ruby/object:Gem::Version
209
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'
210
328
  description: Sprockets is a Rack-based asset packaging system that concatenates and
211
- serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.
329
+ serves JavaScript, CoffeeScript, CSS, Sass, and SCSS.
212
330
  email:
213
331
  - sstephenson@gmail.com
214
332
  - josh@joshpeek.com
@@ -217,20 +335,27 @@ executables:
217
335
  extensions: []
218
336
  extra_rdoc_files: []
219
337
  files:
220
- - LICENSE
338
+ - CHANGELOG.md
339
+ - MIT-LICENSE
221
340
  - README.md
222
341
  - bin/sprockets
223
342
  - lib/rake/sprocketstask.rb
224
343
  - lib/sprockets.rb
344
+ - lib/sprockets/add_source_map_comment_to_asset_processor.rb
225
345
  - lib/sprockets/asset.rb
226
346
  - lib/sprockets/autoload.rb
347
+ - lib/sprockets/autoload/babel.rb
227
348
  - lib/sprockets/autoload/closure.rb
228
349
  - lib/sprockets/autoload/coffee_script.rb
229
350
  - lib/sprockets/autoload/eco.rb
230
351
  - lib/sprockets/autoload/ejs.rb
352
+ - lib/sprockets/autoload/jsminc.rb
231
353
  - lib/sprockets/autoload/sass.rb
354
+ - lib/sprockets/autoload/sassc.rb
232
355
  - lib/sprockets/autoload/uglifier.rb
233
356
  - lib/sprockets/autoload/yui.rb
357
+ - lib/sprockets/autoload/zopfli.rb
358
+ - lib/sprockets/babel_processor.rb
234
359
  - lib/sprockets/base.rb
235
360
  - lib/sprockets/bower.rb
236
361
  - lib/sprockets/bundle.rb
@@ -241,7 +366,6 @@ files:
241
366
  - lib/sprockets/cached_environment.rb
242
367
  - lib/sprockets/closure_compressor.rb
243
368
  - lib/sprockets/coffee_script_processor.rb
244
- - lib/sprockets/coffee_script_template.rb
245
369
  - lib/sprockets/compressing.rb
246
370
  - lib/sprockets/configuration.rb
247
371
  - lib/sprockets/context.rb
@@ -249,29 +373,30 @@ files:
249
373
  - lib/sprockets/digest_utils.rb
250
374
  - lib/sprockets/directive_processor.rb
251
375
  - lib/sprockets/eco_processor.rb
252
- - lib/sprockets/eco_template.rb
253
376
  - lib/sprockets/ejs_processor.rb
254
- - lib/sprockets/ejs_template.rb
255
377
  - lib/sprockets/encoding_utils.rb
256
- - lib/sprockets/engines.rb
257
378
  - lib/sprockets/environment.rb
258
379
  - lib/sprockets/erb_processor.rb
259
- - lib/sprockets/erb_template.rb
260
380
  - lib/sprockets/errors.rb
381
+ - lib/sprockets/exporters/base.rb
382
+ - lib/sprockets/exporters/file_exporter.rb
383
+ - lib/sprockets/exporters/zlib_exporter.rb
384
+ - lib/sprockets/exporters/zopfli_exporter.rb
385
+ - lib/sprockets/exporting.rb
261
386
  - lib/sprockets/file_reader.rb
262
387
  - lib/sprockets/http_utils.rb
388
+ - lib/sprockets/jsminc_compressor.rb
263
389
  - lib/sprockets/jst_processor.rb
264
- - lib/sprockets/legacy.rb
265
- - lib/sprockets/legacy_proc_processor.rb
266
- - lib/sprockets/legacy_tilt_processor.rb
267
390
  - lib/sprockets/loader.rb
268
391
  - lib/sprockets/manifest.rb
269
392
  - lib/sprockets/manifest_utils.rb
270
393
  - lib/sprockets/mime.rb
394
+ - lib/sprockets/npm.rb
271
395
  - lib/sprockets/path_dependency_utils.rb
272
396
  - lib/sprockets/path_digest_utils.rb
273
397
  - lib/sprockets/path_utils.rb
274
398
  - lib/sprockets/paths.rb
399
+ - lib/sprockets/preprocessors/default_source_map.rb
275
400
  - lib/sprockets/processing.rb
276
401
  - lib/sprockets/processor_utils.rb
277
402
  - lib/sprockets/resolve.rb
@@ -280,19 +405,25 @@ files:
280
405
  - lib/sprockets/sass_functions.rb
281
406
  - lib/sprockets/sass_importer.rb
282
407
  - lib/sprockets/sass_processor.rb
283
- - lib/sprockets/sass_template.rb
408
+ - lib/sprockets/sassc_compressor.rb
409
+ - lib/sprockets/sassc_processor.rb
284
410
  - lib/sprockets/server.rb
411
+ - lib/sprockets/source_map_processor.rb
412
+ - lib/sprockets/source_map_utils.rb
285
413
  - lib/sprockets/transformers.rb
286
414
  - lib/sprockets/uglifier_compressor.rb
415
+ - lib/sprockets/unloaded_asset.rb
416
+ - lib/sprockets/uri_tar.rb
287
417
  - lib/sprockets/uri_utils.rb
288
418
  - lib/sprockets/utils.rb
419
+ - lib/sprockets/utils/gzip.rb
289
420
  - lib/sprockets/version.rb
290
421
  - lib/sprockets/yui_compressor.rb
291
422
  homepage: https://github.com/rails/sprockets
292
423
  licenses:
293
424
  - MIT
294
425
  metadata: {}
295
- post_install_message:
426
+ post_install_message:
296
427
  rdoc_options: []
297
428
  require_paths:
298
429
  - lib
@@ -300,16 +431,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
300
431
  requirements:
301
432
  - - ">="
302
433
  - !ruby/object:Gem::Version
303
- version: 1.9.3
434
+ version: 2.5.0
304
435
  required_rubygems_version: !ruby/object:Gem::Requirement
305
436
  requirements:
306
437
  - - ">="
307
438
  - !ruby/object:Gem::Version
308
439
  version: '0'
309
440
  requirements: []
310
- rubyforge_project: sprockets
311
- rubygems_version: 2.4.5
312
- signing_key:
441
+ rubygems_version: 3.3.7
442
+ signing_key:
313
443
  specification_version: 4
314
444
  summary: Rack-based asset packaging system
315
445
  test_files: []
@@ -1,6 +0,0 @@
1
- require 'sprockets/coffee_script_processor'
2
-
3
- module Sprockets
4
- # Deprecated
5
- CoffeeScriptTemplate = CoffeeScriptProcessor
6
- end
@@ -1,6 +0,0 @@
1
- require 'sprockets/eco_processor'
2
-
3
- module Sprockets
4
- # Deprecated
5
- EcoTemplate = EcoProcessor
6
- end
@@ -1,6 +0,0 @@
1
- require 'sprockets/ejs_processor'
2
-
3
- module Sprockets
4
- # Deprecated
5
- EjsTemplate = EjsProcessor
6
- end
@@ -1,81 +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
- ext = Sprockets::Utils.normalize_extension(ext)
55
-
56
- self.computed_config = {}
57
-
58
- if klass.respond_to?(:call)
59
- processor = klass
60
- self.config = hash_reassoc(config, :engines) do |engines|
61
- engines.merge(ext => klass)
62
- end
63
- if options[:mime_type]
64
- self.config = hash_reassoc(config, :engine_mime_types) do |mime_types|
65
- mime_types.merge(ext.to_s => options[:mime_type])
66
- end
67
- end
68
- else
69
- processor = LegacyTiltProcessor.new(klass)
70
- self.config = hash_reassoc(config, :engines) do |engines|
71
- engines.merge(ext => processor)
72
- end
73
- if klass.respond_to?(:default_mime_type) && klass.default_mime_type
74
- self.config = hash_reassoc(config, :engine_mime_types) do |mime_types|
75
- mime_types.merge(ext.to_s => klass.default_mime_type)
76
- end
77
- end
78
- end
79
- end
80
- end
81
- end