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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +118 -0
- data/{LICENSE → MIT-LICENSE} +2 -2
- data/README.md +541 -289
- data/bin/sprockets +20 -7
- data/lib/rake/sprocketstask.rb +34 -17
- data/lib/sprockets/add_source_map_comment_to_asset_processor.rb +60 -0
- data/lib/sprockets/asset.rb +158 -210
- data/lib/sprockets/autoload/babel.rb +8 -0
- data/lib/sprockets/autoload/closure.rb +8 -0
- data/lib/sprockets/autoload/coffee_script.rb +8 -0
- data/lib/sprockets/autoload/eco.rb +8 -0
- data/lib/sprockets/autoload/ejs.rb +8 -0
- data/lib/sprockets/autoload/jsminc.rb +8 -0
- data/lib/sprockets/autoload/sass.rb +8 -0
- data/lib/sprockets/autoload/sassc.rb +8 -0
- data/lib/sprockets/autoload/uglifier.rb +8 -0
- data/lib/sprockets/autoload/yui.rb +8 -0
- data/lib/sprockets/autoload/zopfli.rb +7 -0
- data/lib/sprockets/autoload.rb +16 -0
- data/lib/sprockets/babel_processor.rb +66 -0
- data/lib/sprockets/base.rb +89 -378
- data/lib/sprockets/bower.rb +61 -0
- data/lib/sprockets/bundle.rb +105 -0
- data/lib/sprockets/cache/file_store.rb +190 -14
- data/lib/sprockets/cache/memory_store.rb +84 -0
- data/lib/sprockets/cache/null_store.rb +54 -0
- data/lib/sprockets/cache.rb +271 -0
- data/lib/sprockets/cached_environment.rb +64 -0
- data/lib/sprockets/closure_compressor.rb +48 -0
- data/lib/sprockets/coffee_script_processor.rb +39 -0
- data/lib/sprockets/compressing.rb +134 -0
- data/lib/sprockets/configuration.rb +79 -0
- data/lib/sprockets/context.rb +166 -150
- data/lib/sprockets/dependencies.rb +74 -0
- data/lib/sprockets/digest_utils.rb +197 -0
- data/lib/sprockets/directive_processor.rb +241 -215
- data/lib/sprockets/eco_processor.rb +33 -0
- data/lib/sprockets/ejs_processor.rb +32 -0
- data/lib/sprockets/encoding_utils.rb +261 -0
- data/lib/sprockets/environment.rb +23 -64
- data/lib/sprockets/erb_processor.rb +43 -0
- data/lib/sprockets/errors.rb +5 -13
- data/lib/sprockets/exporters/base.rb +71 -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 +16 -0
- data/lib/sprockets/http_utils.rb +135 -0
- data/lib/sprockets/jsminc_compressor.rb +32 -0
- data/lib/sprockets/jst_processor.rb +36 -19
- data/lib/sprockets/loader.rb +347 -0
- data/lib/sprockets/manifest.rb +228 -112
- data/lib/sprockets/manifest_utils.rb +48 -0
- data/lib/sprockets/mime.rb +78 -31
- data/lib/sprockets/npm.rb +52 -0
- data/lib/sprockets/path_dependency_utils.rb +77 -0
- data/lib/sprockets/path_digest_utils.rb +48 -0
- data/lib/sprockets/path_utils.rb +367 -0
- data/lib/sprockets/paths.rb +43 -19
- data/lib/sprockets/preprocessors/default_source_map.rb +49 -0
- data/lib/sprockets/processing.rb +146 -164
- data/lib/sprockets/processor_utils.rb +170 -0
- data/lib/sprockets/resolve.rb +295 -0
- data/lib/sprockets/sass_cache_store.rb +20 -15
- data/lib/sprockets/sass_compressor.rb +55 -10
- data/lib/sprockets/sass_functions.rb +3 -70
- data/lib/sprockets/sass_importer.rb +3 -29
- data/lib/sprockets/sass_processor.rb +313 -0
- data/lib/sprockets/sassc_compressor.rb +56 -0
- data/lib/sprockets/sassc_processor.rb +297 -0
- data/lib/sprockets/server.rb +159 -91
- data/lib/sprockets/source_map_processor.rb +66 -0
- data/lib/sprockets/source_map_utils.rb +483 -0
- data/lib/sprockets/transformers.rb +173 -0
- data/lib/sprockets/uglifier_compressor.rb +66 -0
- data/lib/sprockets/unloaded_asset.rb +139 -0
- data/lib/sprockets/uri_tar.rb +99 -0
- data/lib/sprockets/uri_utils.rb +194 -0
- data/lib/sprockets/utils/gzip.rb +99 -0
- data/lib/sprockets/utils.rb +193 -52
- data/lib/sprockets/version.rb +2 -1
- data/lib/sprockets/yui_compressor.rb +56 -0
- data/lib/sprockets.rb +217 -75
- metadata +272 -117
- data/lib/sprockets/asset_attributes.rb +0 -131
- data/lib/sprockets/bundled_asset.rb +0 -80
- data/lib/sprockets/caching.rb +0 -96
- data/lib/sprockets/charset_normalizer.rb +0 -41
- data/lib/sprockets/eco_template.rb +0 -38
- data/lib/sprockets/ejs_template.rb +0 -37
- data/lib/sprockets/engines.rb +0 -74
- data/lib/sprockets/index.rb +0 -99
- data/lib/sprockets/processed_asset.rb +0 -152
- data/lib/sprockets/processor.rb +0 -32
- data/lib/sprockets/safety_colons.rb +0 -28
- data/lib/sprockets/sass_template.rb +0 -60
- data/lib/sprockets/scss_template.rb +0 -13
- 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
|