jekyll-assets 3.0.7 → 3.0.8
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/Gemfile +2 -1
- data/README.md +71 -8
- data/Rakefile +1 -0
- data/lib/jekyll-assets.rb +1 -2
- data/lib/jekyll/assets/compressors/sassc.rb +32 -0
- data/lib/jekyll/assets/compressors/scss.rb +30 -0
- data/lib/jekyll/assets/compressors/uglify.rb +30 -0
- data/lib/jekyll/assets/config.rb +1 -1
- data/lib/jekyll/assets/default.rb +1 -2
- data/lib/jekyll/assets/env.rb +1 -38
- data/lib/jekyll/assets/extensible.rb +1 -0
- data/lib/jekyll/assets/hook.rb +32 -79
- data/lib/jekyll/assets/html.rb +1 -6
- data/lib/jekyll/assets/patches/functions.rb +5 -7
- data/lib/jekyll/assets/plugins/alternates.rb +79 -0
- data/lib/jekyll/assets/plugins/font-awesome.rb +0 -1
- data/lib/jekyll/assets/plugins/html/pic.rb +1 -1
- data/lib/jekyll/assets/plugins/liquid.rb +1 -1
- data/lib/jekyll/assets/plugins/prefixer.rb +1 -1
- data/lib/jekyll/assets/plugins/proxy/magick.rb +10 -2
- data/lib/jekyll/assets/plugins/searcher.rb +1 -1
- data/lib/jekyll/assets/plugins/srcmap.rb +47 -0
- data/lib/jekyll/assets/plugins/srcmap/css.rb +35 -0
- data/lib/jekyll/assets/plugins/srcmap/javascript.rb +29 -0
- data/lib/jekyll/assets/plugins/srcmap/writer.rb +187 -0
- data/lib/jekyll/assets/tag.rb +2 -2
- data/lib/jekyll/assets/utils.rb +35 -18
- data/lib/jekyll/assets/version.rb +1 -1
- data/lib/jekyll/assets/writer.rb +30 -33
- metadata +11 -7
- data/lib/jekyll/assets/map.rb +0 -57
- data/lib/jekyll/assets/map/css.rb +0 -43
- data/lib/jekyll/assets/map/javascript.rb +0 -43
- data/lib/jekyll/assets/map/writer.rb +0 -192
data/lib/jekyll/assets/tag.rb
CHANGED
@@ -204,8 +204,8 @@ module Jekyll
|
|
204
204
|
env = ctx.registers[:site].sprockets
|
205
205
|
|
206
206
|
env.logger.error e.message
|
207
|
-
env.logger.
|
208
|
-
env.logger.error "error from file #{args[:argv1]}"
|
207
|
+
env.logger.err_file env.strip_paths(e.backtrace.first)
|
208
|
+
env.logger.error "error from file #{args[:argv1]}" if args
|
209
209
|
raise e.class, "Sass Error"
|
210
210
|
end
|
211
211
|
end
|
data/lib/jekyll/assets/utils.rb
CHANGED
@@ -5,16 +5,37 @@
|
|
5
5
|
module Jekyll
|
6
6
|
module Assets
|
7
7
|
module Utils
|
8
|
+
def self.old_sprockets?
|
9
|
+
@old_sprockets ||= begin
|
10
|
+
Gem::Version.new(Sprockets::VERSION) < Gem::Version.new("4.0.beta")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# --
|
15
|
+
def self.new_uglifier?
|
16
|
+
require "uglifier"
|
17
|
+
modern_supported_version = "4.0.0"
|
18
|
+
Gem::Version.new(Uglifier::VERSION) >= Gem::Version
|
19
|
+
.new(modern_supported_version)
|
20
|
+
rescue LoadError
|
21
|
+
return true
|
22
|
+
end
|
23
|
+
|
24
|
+
# --
|
8
25
|
def self.activate(gem)
|
9
|
-
|
10
|
-
|
26
|
+
spec = Gem::Specification
|
27
|
+
return unless spec.find_all_by_name(gem)&.any? || \
|
28
|
+
spec.find_by_path(gem)&.any?
|
11
29
|
|
12
30
|
require gem
|
13
31
|
if block_given?
|
14
32
|
yield
|
15
33
|
end
|
34
|
+
|
35
|
+
true
|
16
36
|
end
|
17
37
|
|
38
|
+
# --
|
18
39
|
def self.html_fragment(*a)
|
19
40
|
Nokogiri::HTML.fragment(*a) do |c|
|
20
41
|
c.options = Nokogiri::XML::ParseOptions::NONET | \
|
@@ -37,6 +58,7 @@ module Jekyll
|
|
37
58
|
end
|
38
59
|
end
|
39
60
|
|
61
|
+
# --
|
40
62
|
def raw_precompiles
|
41
63
|
asset_config[:raw_precompile].each_with_object([]) do |v, a|
|
42
64
|
if v.is_a?(Hash)
|
@@ -89,9 +111,8 @@ module Jekyll
|
|
89
111
|
# --
|
90
112
|
def url_asset(url, type:)
|
91
113
|
name = File.basename(url)
|
92
|
-
old_ = Env.old_sprockets?
|
93
114
|
|
94
|
-
Url.new(*[
|
115
|
+
Url.new(*[Utils.old_sprockets? ? self : nil, {
|
95
116
|
name: name,
|
96
117
|
filename: url,
|
97
118
|
content_type: type,
|
@@ -148,25 +169,21 @@ module Jekyll
|
|
148
169
|
case true
|
149
170
|
when obj.is_a?(Hash) || obj.is_a?(Liquid::Tag::Parser)
|
150
171
|
obj.each_key.with_object(obj) do |k, o|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
})
|
155
|
-
end
|
172
|
+
o[k] = parse_liquid(o[k], {
|
173
|
+
ctx: ctx,
|
174
|
+
})
|
156
175
|
end
|
157
176
|
when obj.is_a?(Array)
|
158
177
|
obj.map do |v|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
})
|
163
|
-
end
|
164
|
-
|
165
|
-
v
|
178
|
+
parse_liquid(v, {
|
179
|
+
ctx: ctx,
|
180
|
+
})
|
166
181
|
end
|
167
|
-
|
182
|
+
when obj.is_a?(String)
|
168
183
|
ctx.registers[:site].liquid_renderer.file("(asset:var)")
|
169
184
|
.parse(obj).render!(ctx)
|
185
|
+
else
|
186
|
+
obj
|
170
187
|
end
|
171
188
|
end
|
172
189
|
|
@@ -317,7 +334,7 @@ module Jekyll
|
|
317
334
|
end
|
318
335
|
end
|
319
336
|
rescue ExecJS::RuntimeUnavailable
|
320
|
-
|
337
|
+
false
|
321
338
|
end
|
322
339
|
end
|
323
340
|
end
|
data/lib/jekyll/assets/writer.rb
CHANGED
@@ -2,45 +2,42 @@
|
|
2
2
|
# Copyright: 2012 - 2018 - MIT License
|
3
3
|
# Encoding: utf-8
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
# --
|
13
|
-
def call
|
14
|
-
before_hook(asset, env: environment)
|
15
|
-
after_hook(out = super, {
|
16
|
-
env: environment, asset: asset
|
17
|
-
})
|
5
|
+
if defined?(Sprockets::Exporters)
|
6
|
+
module SprocketsWriterPatches
|
7
|
+
def skip?(logger)
|
8
|
+
return true if File.exist?(target)
|
9
|
+
logger.debug "Writing asset to #{target}"
|
10
|
+
false
|
11
|
+
end
|
18
12
|
|
19
|
-
|
20
|
-
|
13
|
+
# --
|
14
|
+
def call
|
15
|
+
before_hook(asset, env: environment)
|
16
|
+
after_hook(out = super, {
|
17
|
+
env: environment, asset: asset
|
18
|
+
})
|
21
19
|
|
22
|
-
|
23
|
-
private
|
24
|
-
def before_hook(asset, env:)
|
25
|
-
Jekyll::Assets::Hook.trigger :asset, :before_write do |v|
|
26
|
-
v.call(asset, env)
|
20
|
+
out
|
27
21
|
end
|
28
|
-
end
|
29
22
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
23
|
+
# --
|
24
|
+
private
|
25
|
+
def before_hook(asset, env:)
|
26
|
+
Jekyll::Assets::Hook.trigger :asset, :before_write do |v|
|
27
|
+
v.call(asset, env)
|
28
|
+
end
|
35
29
|
end
|
36
|
-
end
|
37
|
-
end
|
38
30
|
|
39
|
-
# --
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
31
|
+
# --
|
32
|
+
private
|
33
|
+
def after_hook(out, asset:, env:)
|
34
|
+
Jekyll::Assets::Hook.trigger :asset, :after_write do |v|
|
35
|
+
v.call(out, asset, env)
|
36
|
+
end
|
44
37
|
end
|
45
38
|
end
|
39
|
+
|
40
|
+
# --
|
41
|
+
Sprockets::Exporters::FileExporter.send \
|
42
|
+
:prepend, SprocketsWriterPatches
|
46
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordon Bedwell
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-03-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: execjs
|
@@ -202,6 +202,9 @@ files:
|
|
202
202
|
- Rakefile
|
203
203
|
- lib/jekyll-assets.rb
|
204
204
|
- lib/jekyll/assets.rb
|
205
|
+
- lib/jekyll/assets/compressors/sassc.rb
|
206
|
+
- lib/jekyll/assets/compressors/scss.rb
|
207
|
+
- lib/jekyll/assets/compressors/uglify.rb
|
205
208
|
- lib/jekyll/assets/config.rb
|
206
209
|
- lib/jekyll/assets/context.rb
|
207
210
|
- lib/jekyll/assets/default.rb
|
@@ -213,10 +216,6 @@ files:
|
|
213
216
|
- lib/jekyll/assets/html.rb
|
214
217
|
- lib/jekyll/assets/logger.rb
|
215
218
|
- lib/jekyll/assets/manifest.rb
|
216
|
-
- lib/jekyll/assets/map.rb
|
217
|
-
- lib/jekyll/assets/map/css.rb
|
218
|
-
- lib/jekyll/assets/map/javascript.rb
|
219
|
-
- lib/jekyll/assets/map/writer.rb
|
220
219
|
- lib/jekyll/assets/patches/asset.rb
|
221
220
|
- lib/jekyll/assets/patches/cached.rb
|
222
221
|
- lib/jekyll/assets/patches/find_asset.rb
|
@@ -224,6 +223,7 @@ files:
|
|
224
223
|
- lib/jekyll/assets/patches/obsolete.rb
|
225
224
|
- lib/jekyll/assets/patches/site.rb
|
226
225
|
- lib/jekyll/assets/plugins.rb
|
226
|
+
- lib/jekyll/assets/plugins/alternates.rb
|
227
227
|
- lib/jekyll/assets/plugins/bootstrap.rb
|
228
228
|
- lib/jekyll/assets/plugins/font-awesome.rb
|
229
229
|
- lib/jekyll/assets/plugins/frontmatter.rb
|
@@ -250,6 +250,10 @@ files:
|
|
250
250
|
- lib/jekyll/assets/plugins/proxy/magick.rb
|
251
251
|
- lib/jekyll/assets/plugins/proxy/optim.rb
|
252
252
|
- lib/jekyll/assets/plugins/searcher.rb
|
253
|
+
- lib/jekyll/assets/plugins/srcmap.rb
|
254
|
+
- lib/jekyll/assets/plugins/srcmap/css.rb
|
255
|
+
- lib/jekyll/assets/plugins/srcmap/javascript.rb
|
256
|
+
- lib/jekyll/assets/plugins/srcmap/writer.rb
|
253
257
|
- lib/jekyll/assets/proxy.rb
|
254
258
|
- lib/jekyll/assets/reader.rb
|
255
259
|
- lib/jekyll/assets/tag.rb
|
@@ -277,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
281
|
version: '0'
|
278
282
|
requirements: []
|
279
283
|
rubyforge_project:
|
280
|
-
rubygems_version: 2.7.
|
284
|
+
rubygems_version: 2.7.5
|
281
285
|
signing_key:
|
282
286
|
specification_version: 4
|
283
287
|
summary: Assets for Jekyll
|
data/lib/jekyll/assets/map.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2012 - 2018 - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require_relative "map/css"
|
6
|
-
require_relative "map/javascript"
|
7
|
-
require_relative "map/writer"
|
8
|
-
require "pathutil"
|
9
|
-
|
10
|
-
module Jekyll
|
11
|
-
module Assets
|
12
|
-
module Map
|
13
|
-
NAME = "%<name>s.map"
|
14
|
-
DIR_NAME = "source-maps"
|
15
|
-
DIR = Pathutil.new(DIR_NAME)
|
16
|
-
EXT = ".map"
|
17
|
-
|
18
|
-
# --
|
19
|
-
# @return [String] the map name.
|
20
|
-
# Take the path, and attach the map extension.
|
21
|
-
# @note this just saves logic.
|
22
|
-
# --
|
23
|
-
def self.map_path(env:, asset:)
|
24
|
-
[
|
25
|
-
path({
|
26
|
-
asset: asset,
|
27
|
-
env: env,
|
28
|
-
}),
|
29
|
-
EXT,
|
30
|
-
].join
|
31
|
-
end
|
32
|
-
|
33
|
-
# --
|
34
|
-
# @note this is used for anything in source-maps.
|
35
|
-
# Strip the filename and return a relative sourcemap path.
|
36
|
-
# @return [Pathutil] the path.
|
37
|
-
# --
|
38
|
-
def self.path(env:, asset:)
|
39
|
-
DIR.join(env.strip_paths(asset.is_a?(Sprockets::Asset) ?
|
40
|
-
asset.filename : asset))
|
41
|
-
end
|
42
|
-
|
43
|
-
# --
|
44
|
-
def self.register_on(instance)
|
45
|
-
return unless instance.asset_config[:source_maps]
|
46
|
-
unless instance.asset_config[:compression]
|
47
|
-
instance.logger.warn "Compression is ignored w/ SourceMaps"
|
48
|
-
end
|
49
|
-
|
50
|
-
# Register everything, so we can get this party started.
|
51
|
-
[Writer, JavaScript, CSS].map { |v| v.register_on(instance) }
|
52
|
-
instance.css_compressor, instance.js_compressor =
|
53
|
-
:source_map, :source_map
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2012 - 2018 - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "sprockets"
|
6
|
-
|
7
|
-
module Jekyll
|
8
|
-
module Assets
|
9
|
-
module Map
|
10
|
-
class CSS < Sprockets::SassCompressor
|
11
|
-
def call(input)
|
12
|
-
out = super(input)
|
13
|
-
env = input[:environment]
|
14
|
-
asset = env.find_asset!(input[:filename], pipeline: :source)
|
15
|
-
path = asset.filename.sub(env.jekyll.in_source_dir + "/", "")
|
16
|
-
url = Map.map_path(asset: asset, env: env)
|
17
|
-
url = env.prefix_url(url)
|
18
|
-
|
19
|
-
out.update({
|
20
|
-
data: <<~CSS
|
21
|
-
#{out[:data].strip}
|
22
|
-
/*# sourceMappingURL=#{url} */
|
23
|
-
/*# sourceURL=#{path} */
|
24
|
-
CSS
|
25
|
-
})
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.register_on(instance)
|
29
|
-
content_type = "text/css"
|
30
|
-
instance.register_compressor content_type,
|
31
|
-
:source_map, CSS
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# --
|
36
|
-
# We load late in some cases.
|
37
|
-
# You can also register it in a Hook.
|
38
|
-
# Globally Register it.
|
39
|
-
# --
|
40
|
-
CSS.register_on(Sprockets)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2012 - 2018 - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "sprockets"
|
6
|
-
|
7
|
-
module Jekyll
|
8
|
-
module Assets
|
9
|
-
module Map
|
10
|
-
class JavaScript < Sprockets::UglifierCompressor
|
11
|
-
def call(input)
|
12
|
-
out = super(input)
|
13
|
-
env = input[:environment]
|
14
|
-
asset = env.find_asset!(input[:filename], pipeline: :source)
|
15
|
-
path = asset.filename.sub(env.jekyll.in_source_dir + "/", "")
|
16
|
-
url = Map.map_path(asset: asset, env: env)
|
17
|
-
url = env.prefix_url(url)
|
18
|
-
|
19
|
-
out.update({
|
20
|
-
data: <<~TXT
|
21
|
-
#{input[:data].strip}
|
22
|
-
//# sourceMappingURL=#{url}
|
23
|
-
//# sourceURL=#{path}
|
24
|
-
TXT
|
25
|
-
})
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.register_on(instance)
|
29
|
-
content_type = "application/javascript"
|
30
|
-
instance.register_compressor(content_type,
|
31
|
-
:source_map, self)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# --
|
36
|
-
# We load late in some cases.
|
37
|
-
# You can also register it in a Hook.
|
38
|
-
# Globally Register it.
|
39
|
-
# --
|
40
|
-
JavaScript.register_on(Sprockets)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,192 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2012 - 2018 - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "sprockets"
|
6
|
-
require "pathutil"
|
7
|
-
|
8
|
-
module Jekyll
|
9
|
-
module Assets
|
10
|
-
module Map
|
11
|
-
class Writer < Sprockets::Exporters::Base
|
12
|
-
alias env environment
|
13
|
-
|
14
|
-
def skip?(_)
|
15
|
-
!env.asset_config[:source_maps] ||
|
16
|
-
!asset.metadata[:map]
|
17
|
-
end
|
18
|
-
|
19
|
-
# --
|
20
|
-
def call
|
21
|
-
clean_file!
|
22
|
-
clean_sources!
|
23
|
-
write_map!
|
24
|
-
write_src!
|
25
|
-
end
|
26
|
-
|
27
|
-
# --
|
28
|
-
# Provides our custom manifest key, full of files.
|
29
|
-
# @note We push everything from the file we are writing to the maps.
|
30
|
-
# @return [Array<String>]
|
31
|
-
# --
|
32
|
-
def files
|
33
|
-
@files ||= begin
|
34
|
-
key = "sourceMapFiles"
|
35
|
-
out = env.manifest.data[key] ||= []
|
36
|
-
unless Manifest.keep_keys.include?(key)
|
37
|
-
Manifest.keep_keys << key
|
38
|
-
end
|
39
|
-
|
40
|
-
out
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# --
|
45
|
-
def self.register_on(instance)
|
46
|
-
instance.register_exporter("*/*", self)
|
47
|
-
end
|
48
|
-
|
49
|
-
# --
|
50
|
-
# @return [HashWithIndifferentAccess]
|
51
|
-
# @note do not modify the original map.
|
52
|
-
# Provides a modifible SourceMap
|
53
|
-
# --
|
54
|
-
private
|
55
|
-
def map
|
56
|
-
@map ||= asset.metadata[:map]
|
57
|
-
.with_indifferent_access
|
58
|
-
end
|
59
|
-
|
60
|
-
# --
|
61
|
-
# @return [HashWithIndifferentAccess]
|
62
|
-
# @note this is frozen so you can't modify.
|
63
|
-
# Provides an unmodifiable SourceMap
|
64
|
-
# --
|
65
|
-
private
|
66
|
-
def original_map
|
67
|
-
@original_map ||= asset.metadata[:map]
|
68
|
-
.with_indifferent_access.freeze
|
69
|
-
end
|
70
|
-
|
71
|
-
# --
|
72
|
-
# @note something like _assets/*
|
73
|
-
# Makes sure that the name sits in the asset path.
|
74
|
-
# @return [String]
|
75
|
-
# --
|
76
|
-
private
|
77
|
-
def clean_file!
|
78
|
-
map[:file] = base.join(map[:file]).to_s
|
79
|
-
end
|
80
|
-
|
81
|
-
# --
|
82
|
-
private
|
83
|
-
def clean_sources!
|
84
|
-
if map[:sources]
|
85
|
-
then map[:sources] = map[:sources].map do |v|
|
86
|
-
base.join(strip_src(v))
|
87
|
-
end
|
88
|
-
else
|
89
|
-
map[:sections].each do |v|
|
90
|
-
v[:map][:sources] = v[:map][:sources].map do |vv|
|
91
|
-
base.join(strip_src(vv))
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
map
|
97
|
-
end
|
98
|
-
|
99
|
-
# --
|
100
|
-
private
|
101
|
-
def strip_src(path)
|
102
|
-
path = Pathutil.new(path)
|
103
|
-
base = path.basename.gsub(%r!\.source!, "")
|
104
|
-
return path.dirname.join(base).to_s unless path.dirname == "."
|
105
|
-
base.to_s if path.dirname == "."
|
106
|
-
end
|
107
|
-
|
108
|
-
# --
|
109
|
-
# @note we shim this on name.
|
110
|
-
# Privates the base directory in the source.
|
111
|
-
# @return [String]
|
112
|
-
# --
|
113
|
-
private
|
114
|
-
def base
|
115
|
-
Pathutil.new(asset.filename.sub(env.jekyll
|
116
|
-
.in_source_dir + "/", "")).dirname
|
117
|
-
end
|
118
|
-
|
119
|
-
# --
|
120
|
-
# rubocop:disable Layout/BlockEndNewline
|
121
|
-
# rubocop:disable Layout/MultilineBlockLayout
|
122
|
-
# rubocop:disable Style/BlockDelimiters
|
123
|
-
# --
|
124
|
-
private
|
125
|
-
def map_files
|
126
|
-
return original_map[:sources] if original_map.key?(:sources)
|
127
|
-
original_map[:sections].map { |v| v[:map][:sources] \
|
128
|
-
if v.key?(:map) }.flatten.compact
|
129
|
-
end
|
130
|
-
|
131
|
-
# --
|
132
|
-
# rubocop:enable Layout/BlockEndNewline
|
133
|
-
# rubocop:enable Layout/MultilineBlockLayout
|
134
|
-
# rubocop:enable Style/BlockDelimiters
|
135
|
-
# --
|
136
|
-
private
|
137
|
-
def write_map!
|
138
|
-
path = Map.map_path(asset: asset, env: env)
|
139
|
-
write(env.in_dest_dir(path)) do |f|
|
140
|
-
files.push(path)
|
141
|
-
f.write(map.to_json)
|
142
|
-
files.uniq!
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
# --
|
147
|
-
private
|
148
|
-
def strip_base(asset)
|
149
|
-
return asset if asset.is_a?(Sprockets::Asset)
|
150
|
-
asset.sub(base + "/", "")
|
151
|
-
end
|
152
|
-
|
153
|
-
# --
|
154
|
-
private
|
155
|
-
def write_src!
|
156
|
-
[asset_path, map_files].flatten.compact.uniq.each do |v|
|
157
|
-
next unless (v = env.find_asset(strip_base(v), pipeline: :source))
|
158
|
-
path = map_path(v.filename)
|
159
|
-
|
160
|
-
write(environment.in_dest_dir(path)) do |f|
|
161
|
-
f.write(v.source)
|
162
|
-
files.push(path.to_s)
|
163
|
-
.uniq!
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
# --
|
169
|
-
private
|
170
|
-
def asset_path
|
171
|
-
base.join(env.strip_paths(@asset.filename)).to_s
|
172
|
-
end
|
173
|
-
|
174
|
-
# --
|
175
|
-
private
|
176
|
-
def map_path(file)
|
177
|
-
asset = base.join(env.strip_paths(file))
|
178
|
-
Map.path({
|
179
|
-
asset: asset, env: env
|
180
|
-
})
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
# --
|
185
|
-
# We load late in some cases.
|
186
|
-
# You can also register it in a Hook.
|
187
|
-
# Globally Register it.
|
188
|
-
# --
|
189
|
-
Writer.register_on(Sprockets)
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|