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
@@ -1,60 +0,0 @@
1
- require 'tilt'
2
-
3
- module Sprockets
4
- # This custom Tilt handler replaces the one built into Tilt. The
5
- # main difference is that it uses a custom importer that plays nice
6
- # with sprocket's caching system.
7
- #
8
- # See `SassImporter` for more infomation.
9
- class SassTemplate < Tilt::Template
10
- self.default_mime_type = 'text/css'
11
-
12
- def self.engine_initialized?
13
- defined?(::Sass::Engine) && defined?(::Sass::Script::Functions) &&
14
- Sass::Script::Functions < Sprockets::SassFunctions
15
- end
16
-
17
- def initialize_engine
18
- # Double check constant to avoid tilt warning
19
- unless defined? ::Sass
20
- require_template_library 'sass'
21
- end
22
-
23
- # Install custom functions. It'd be great if this didn't need to
24
- # be installed globally, but could be passed into Engine as an
25
- # option.
26
- Sass::Script::Functions.send :include, Sprockets::SassFunctions
27
- end
28
-
29
- def prepare
30
- end
31
-
32
- def syntax
33
- :sass
34
- end
35
-
36
- def evaluate(context, locals, &block)
37
- # Use custom importer that knows about Sprockets Caching
38
- cache_store = SassCacheStore.new(context.environment)
39
-
40
- options = {
41
- :filename => eval_file,
42
- :line => line,
43
- :syntax => syntax,
44
- :cache_store => cache_store,
45
- :importer => SassImporter.new(context, context.pathname),
46
- :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) },
47
- :sprockets => {
48
- :context => context,
49
- :environment => context.environment
50
- }
51
- }
52
-
53
- ::Sass::Engine.new(data, options).render
54
- rescue ::Sass::SyntaxError => e
55
- # Annotates exception message with parse line number
56
- context.__LINE__ = e.sass_backtrace.first[:line]
57
- raise e
58
- end
59
- end
60
- end
@@ -1,13 +0,0 @@
1
- require 'sprockets/sass_template'
2
-
3
- module Sprockets
4
- # Scss handler to replace Tilt's builtin one. See `SassTemplate` and
5
- # `SassImporter` for more infomation.
6
- class ScssTemplate < SassTemplate
7
- self.default_mime_type = 'text/css'
8
-
9
- def syntax
10
- :scss
11
- end
12
- end
13
- end
@@ -1,58 +0,0 @@
1
- require 'sprockets/asset'
2
- require 'fileutils'
3
- require 'zlib'
4
-
5
- module Sprockets
6
- # `StaticAsset`s are used for files that are served verbatim without
7
- # any processing or concatenation. These are typical images and
8
- # other binary files.
9
- class StaticAsset < Asset
10
- # Returns file contents as its `source`.
11
- def source
12
- # File is read everytime to avoid memory bloat of large binary files
13
- pathname.open('rb') { |f| f.read }
14
- end
15
-
16
- # Implemented for Rack SendFile support.
17
- def to_path
18
- pathname.to_s
19
- end
20
-
21
- # Save asset to disk.
22
- def write_to(filename, options = {})
23
- # Gzip contents if filename has '.gz'
24
- options[:compress] ||= File.extname(filename) == '.gz'
25
-
26
- FileUtils.mkdir_p File.dirname(filename)
27
-
28
- if options[:compress]
29
- # Open file and run it through `Zlib`
30
- pathname.open('rb') do |rd|
31
- File.open("#{filename}+", 'wb') do |wr|
32
- gz = Zlib::GzipWriter.new(wr, Zlib::BEST_COMPRESSION)
33
- gz.mtime = mtime.to_i
34
- buf = ""
35
- while rd.read(16384, buf)
36
- gz.write(buf)
37
- end
38
- gz.close
39
- end
40
- end
41
- else
42
- # If no compression needs to be done, we can just copy it into place.
43
- FileUtils.cp(pathname, "#{filename}+")
44
- end
45
-
46
- # Atomic write
47
- FileUtils.mv("#{filename}+", filename)
48
-
49
- # Set mtime correctly
50
- File.utime(mtime, mtime, filename)
51
-
52
- nil
53
- ensure
54
- # Ensure tmp file gets cleaned up
55
- FileUtils.rm("#{filename}+") if File.exist?("#{filename}+")
56
- end
57
- end
58
- end