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