sprockets 3.7.2 → 4.0.0.beta1
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 +5 -5
- data/CHANGELOG.md +2 -295
- data/README.md +21 -35
- data/bin/sprockets +11 -8
- data/lib/rake/sprocketstask.rb +2 -2
- data/lib/sprockets.rb +79 -34
- data/lib/sprockets/asset.rb +8 -21
- data/lib/sprockets/autoload.rb +3 -0
- data/lib/sprockets/autoload/babel.rb +7 -0
- data/lib/sprockets/autoload/jsminc.rb +7 -0
- data/lib/sprockets/autoload/sassc.rb +7 -0
- data/lib/sprockets/babel_processor.rb +58 -0
- data/lib/sprockets/base.rb +8 -8
- data/lib/sprockets/bower.rb +4 -2
- data/lib/sprockets/bundle.rb +1 -1
- data/lib/sprockets/cache.rb +2 -4
- data/lib/sprockets/closure_compressor.rb +1 -2
- data/lib/sprockets/coffee_script_processor.rb +9 -3
- data/lib/sprockets/compressing.rb +2 -2
- data/lib/sprockets/configuration.rb +1 -7
- data/lib/sprockets/context.rb +10 -18
- data/lib/sprockets/digest_utils.rb +40 -52
- data/lib/sprockets/directive_processor.rb +10 -13
- data/lib/sprockets/http_utils.rb +19 -4
- data/lib/sprockets/jsminc_compressor.rb +31 -0
- data/lib/sprockets/jst_processor.rb +10 -10
- data/lib/sprockets/loader.rb +34 -28
- data/lib/sprockets/manifest.rb +3 -35
- data/lib/sprockets/manifest_utils.rb +0 -2
- data/lib/sprockets/mime.rb +7 -42
- data/lib/sprockets/path_dependency_utils.rb +2 -11
- data/lib/sprockets/path_digest_utils.rb +1 -1
- data/lib/sprockets/path_utils.rb +43 -18
- data/lib/sprockets/preprocessors/default_source_map.rb +24 -0
- data/lib/sprockets/processing.rb +30 -61
- data/lib/sprockets/processor_utils.rb +27 -28
- data/lib/sprockets/resolve.rb +172 -92
- data/lib/sprockets/sass_cache_store.rb +1 -6
- data/lib/sprockets/sass_compressor.rb +14 -1
- data/lib/sprockets/sass_processor.rb +18 -8
- data/lib/sprockets/sassc_compressor.rb +30 -0
- data/lib/sprockets/sassc_processor.rb +68 -0
- data/lib/sprockets/server.rb +9 -20
- data/lib/sprockets/source_map_comment_processor.rb +29 -0
- data/lib/sprockets/source_map_processor.rb +40 -0
- data/lib/sprockets/source_map_utils.rb +345 -0
- data/lib/sprockets/transformers.rb +62 -35
- data/lib/sprockets/uglifier_compressor.rb +12 -5
- data/lib/sprockets/unloaded_asset.rb +12 -11
- data/lib/sprockets/uri_tar.rb +4 -2
- data/lib/sprockets/uri_utils.rb +5 -5
- data/lib/sprockets/utils.rb +30 -78
- data/lib/sprockets/version.rb +1 -1
- metadata +62 -20
- data/LICENSE +0 -21
- data/lib/sprockets/coffee_script_template.rb +0 -17
- data/lib/sprockets/deprecation.rb +0 -90
- data/lib/sprockets/eco_template.rb +0 -17
- data/lib/sprockets/ejs_template.rb +0 -17
- data/lib/sprockets/engines.rb +0 -92
- data/lib/sprockets/erb_template.rb +0 -11
- data/lib/sprockets/legacy.rb +0 -330
- data/lib/sprockets/legacy_proc_processor.rb +0 -35
- data/lib/sprockets/legacy_tilt_processor.rb +0 -29
- data/lib/sprockets/sass_template.rb +0 -19
data/lib/rake/sprocketstask.rb
CHANGED
@@ -124,7 +124,7 @@ module Rake
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
|
-
task :
|
127
|
+
task clobber: ["clobber_#{name}"]
|
128
128
|
|
129
129
|
desc name == :assets ? "Clean old assets" : "Clean old #{name} assets"
|
130
130
|
task "clean_#{name}" do
|
@@ -133,7 +133,7 @@ module Rake
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
task :
|
136
|
+
task clean: ["clean_#{name}"]
|
137
137
|
end
|
138
138
|
|
139
139
|
private
|
data/lib/sprockets.rb
CHANGED
@@ -4,7 +4,6 @@ require 'sprockets/cache'
|
|
4
4
|
require 'sprockets/environment'
|
5
5
|
require 'sprockets/errors'
|
6
6
|
require 'sprockets/manifest'
|
7
|
-
require 'sprockets/deprecation'
|
8
7
|
|
9
8
|
module Sprockets
|
10
9
|
require 'sprockets/processor_utils'
|
@@ -23,21 +22,19 @@ module Sprockets
|
|
23
22
|
dependencies: Set.new.freeze,
|
24
23
|
dependency_resolvers: {}.freeze,
|
25
24
|
digest_class: Digest::SHA256,
|
26
|
-
engine_mime_types: {}.freeze,
|
27
|
-
engines: {}.freeze,
|
28
25
|
mime_exts: {}.freeze,
|
29
26
|
mime_types: {}.freeze,
|
30
27
|
paths: [].freeze,
|
31
28
|
pipelines: {}.freeze,
|
29
|
+
pipeline_exts: {}.freeze,
|
32
30
|
postprocessors: Hash.new { |h, k| [].freeze }.freeze,
|
33
31
|
preprocessors: Hash.new { |h, k| [].freeze }.freeze,
|
34
|
-
registered_transformers:
|
35
|
-
root:
|
32
|
+
registered_transformers: [].freeze,
|
33
|
+
root: __dir__.dup.freeze,
|
36
34
|
transformers: Hash.new { |h, k| {}.freeze }.freeze,
|
37
35
|
version: "",
|
38
36
|
gzip_enabled: true
|
39
37
|
}.freeze
|
40
|
-
self.computed_config = {}
|
41
38
|
|
42
39
|
@context_class = Context
|
43
40
|
|
@@ -48,6 +45,7 @@ module Sprockets
|
|
48
45
|
# Common asset text types
|
49
46
|
register_mime_type 'application/javascript', extensions: ['.js'], charset: :unicode
|
50
47
|
register_mime_type 'application/json', extensions: ['.json'], charset: :unicode
|
48
|
+
register_mime_type 'application/ruby', extensions: ['.rb']
|
51
49
|
register_mime_type 'application/xml', extensions: ['.xml']
|
52
50
|
register_mime_type 'text/css', extensions: ['.css'], charset: :css
|
53
51
|
register_mime_type 'text/html', extensions: ['.html', '.htm'], charset: :html
|
@@ -80,26 +78,44 @@ module Sprockets
|
|
80
78
|
register_mime_type 'application/x-font-opentype', extensions: ['.otf']
|
81
79
|
register_mime_type 'application/x-font-ttf', extensions: ['.ttf']
|
82
80
|
register_mime_type 'application/font-woff', extensions: ['.woff']
|
81
|
+
register_mime_type 'application/font-woff2', extensions: ['.woff2']
|
82
|
+
|
83
|
+
require 'sprockets/source_map_processor'
|
84
|
+
register_mime_type 'application/js-sourcemap+json', extensions: ['.js.map']
|
85
|
+
register_mime_type 'application/css-sourcemap+json', extensions: ['.css.map']
|
86
|
+
register_transformer 'application/javascript', 'application/js-sourcemap+json', SourceMapProcessor
|
87
|
+
register_transformer 'text/css', 'application/css-sourcemap+json', SourceMapProcessor
|
83
88
|
|
84
89
|
register_pipeline :source do |env|
|
85
90
|
[]
|
86
91
|
end
|
87
92
|
|
88
|
-
register_pipeline :self do |env, type, file_type
|
89
|
-
env.self_processors_for(type, file_type
|
93
|
+
register_pipeline :self do |env, type, file_type|
|
94
|
+
env.self_processors_for(type, file_type)
|
95
|
+
end
|
96
|
+
|
97
|
+
register_pipeline :default do |env, type, file_type|
|
98
|
+
# TODO: Hack for to inject source map transformer
|
99
|
+
if (type == "application/js-sourcemap+json" && file_type != "application/js-sourcemap+json") ||
|
100
|
+
(type == "application/css-sourcemap+json" && file_type != "application/css-sourcemap+json")
|
101
|
+
[SourceMapProcessor]
|
102
|
+
else
|
103
|
+
env.default_processors_for(type, file_type)
|
104
|
+
end
|
90
105
|
end
|
91
106
|
|
92
|
-
|
93
|
-
|
107
|
+
require 'sprockets/source_map_comment_processor'
|
108
|
+
register_pipeline :debug do
|
109
|
+
[SourceMapCommentProcessor]
|
94
110
|
end
|
95
111
|
|
112
|
+
require 'sprockets/preprocessors/default_source_map'
|
113
|
+
register_preprocessor 'text/css', Preprocessors::DefaultSourceMap.new
|
114
|
+
register_preprocessor 'application/javascript', Preprocessors::DefaultSourceMap.new
|
115
|
+
|
96
116
|
require 'sprockets/directive_processor'
|
97
|
-
register_preprocessor 'text/css', DirectiveProcessor.new(
|
98
|
-
|
99
|
-
)
|
100
|
-
register_preprocessor 'application/javascript', DirectiveProcessor.new(
|
101
|
-
comments: ["//", ["/*", "*/"]] + ["#", ["###", "###"]]
|
102
|
-
)
|
117
|
+
register_preprocessor 'text/css', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
|
118
|
+
register_preprocessor 'application/javascript', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
|
103
119
|
|
104
120
|
require 'sprockets/bundle'
|
105
121
|
register_bundle_processor 'application/javascript', Bundle
|
@@ -108,46 +124,77 @@ module Sprockets
|
|
108
124
|
register_bundle_metadata_reducer '*/*', :data, proc { "" }, :concat
|
109
125
|
register_bundle_metadata_reducer 'application/javascript', :data, proc { "" }, Utils.method(:concat_javascript_sources)
|
110
126
|
register_bundle_metadata_reducer '*/*', :links, :+
|
127
|
+
register_bundle_metadata_reducer '*/*', :map, SourceMapUtils.method(:concat_source_maps)
|
111
128
|
|
112
129
|
require 'sprockets/closure_compressor'
|
113
130
|
require 'sprockets/sass_compressor'
|
131
|
+
require 'sprockets/sassc_compressor'
|
132
|
+
require 'sprockets/jsminc_compressor'
|
114
133
|
require 'sprockets/uglifier_compressor'
|
115
134
|
require 'sprockets/yui_compressor'
|
116
135
|
register_compressor 'text/css', :sass, SassCompressor
|
136
|
+
register_compressor 'text/css', :sassc, SasscCompressor
|
117
137
|
register_compressor 'text/css', :scss, SassCompressor
|
138
|
+
register_compressor 'text/css', :scssc, SasscCompressor
|
118
139
|
register_compressor 'text/css', :yui, YUICompressor
|
119
140
|
register_compressor 'application/javascript', :closure, ClosureCompressor
|
141
|
+
register_compressor 'application/javascript', :jsmin, JSMincCompressor
|
142
|
+
register_compressor 'application/javascript', :jsminc, JSMincCompressor
|
120
143
|
register_compressor 'application/javascript', :uglifier, UglifierCompressor
|
121
144
|
register_compressor 'application/javascript', :uglify, UglifierCompressor
|
122
145
|
register_compressor 'application/javascript', :yui, YUICompressor
|
123
146
|
|
147
|
+
# Babel, TheFuture™ is now
|
148
|
+
require 'sprockets/babel_processor'
|
149
|
+
register_mime_type 'application/ecmascript-6', extensions: ['.es6'], charset: :unicode
|
150
|
+
register_transformer 'application/ecmascript-6', 'application/javascript', BabelProcessor
|
151
|
+
register_preprocessor 'application/ecmascript-6', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
|
152
|
+
|
124
153
|
# Mmm, CoffeeScript
|
125
154
|
require 'sprockets/coffee_script_processor'
|
126
|
-
|
127
|
-
|
128
|
-
|
155
|
+
register_mime_type 'text/coffeescript', extensions: ['.coffee', '.js.coffee']
|
156
|
+
register_transformer 'text/coffeescript', 'application/javascript', CoffeeScriptProcessor
|
157
|
+
register_preprocessor 'text/coffeescript', DirectiveProcessor.new(comments: ["#", ["###", "###"]])
|
129
158
|
|
130
|
-
# JST
|
159
|
+
# JST processors
|
131
160
|
require 'sprockets/eco_processor'
|
132
161
|
require 'sprockets/ejs_processor'
|
133
162
|
require 'sprockets/jst_processor'
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
163
|
+
register_mime_type 'text/eco', extensions: ['.eco', '.jst.eco']
|
164
|
+
register_mime_type 'text/ejs', extensions: ['.ejs', '.jst.ejs']
|
165
|
+
register_transformer 'text/eco', 'application/javascript+function', EcoProcessor
|
166
|
+
register_transformer 'text/ejs', 'application/javascript+function', EjsProcessor
|
167
|
+
register_transformer 'application/javascript+function', 'application/javascript', JstProcessor
|
139
168
|
|
140
|
-
# CSS
|
169
|
+
# CSS processors
|
141
170
|
require 'sprockets/sass_processor'
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
171
|
+
register_mime_type 'text/sass', extensions: ['.sass', '.css.sass']
|
172
|
+
register_mime_type 'text/scss', extensions: ['.scss', '.css.scss']
|
173
|
+
register_transformer 'text/sass', 'text/css', SassProcessor
|
174
|
+
register_transformer 'text/scss', 'text/css', ScssProcessor
|
175
|
+
register_preprocessor 'text/sass', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
|
176
|
+
register_preprocessor 'text/scss', DirectiveProcessor.new(comments: ["//", ["/*", "*/"]])
|
146
177
|
register_bundle_metadata_reducer 'text/css', :sass_dependencies, Set.new, :+
|
147
178
|
|
148
|
-
#
|
179
|
+
# ERB
|
149
180
|
require 'sprockets/erb_processor'
|
150
|
-
|
181
|
+
register_transformer_suffix(%w(
|
182
|
+
application/ecmascript-6
|
183
|
+
application/javascript
|
184
|
+
application/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
|
+
), 'application/\2+ruby', '.erb', ERBProcessor)
|
194
|
+
|
195
|
+
register_mime_type 'application/html+ruby', extensions: ['.html.erb', '.erb', '.rhtml'], charset: :html
|
196
|
+
register_mime_type 'application/xml+ruby', extensions: ['.xml.erb', '.rxml']
|
197
|
+
|
151
198
|
|
152
199
|
register_dependency_resolver 'environment-version' do |env|
|
153
200
|
env.version
|
@@ -165,5 +212,3 @@ module Sprockets
|
|
165
212
|
depend_on 'environment-version'
|
166
213
|
depend_on 'environment-paths'
|
167
214
|
end
|
168
|
-
|
169
|
-
require 'sprockets/legacy'
|
data/lib/sprockets/asset.rb
CHANGED
@@ -13,8 +13,7 @@ module Sprockets
|
|
13
13
|
# attributes - Hash of ivars
|
14
14
|
#
|
15
15
|
# Returns Asset.
|
16
|
-
def initialize(
|
17
|
-
@environment = environment
|
16
|
+
def initialize(attributes = {})
|
18
17
|
@attributes = attributes
|
19
18
|
@content_type = attributes[:content_type]
|
20
19
|
@filename = attributes[:filename]
|
@@ -22,7 +21,6 @@ module Sprockets
|
|
22
21
|
@load_path = attributes[:load_path]
|
23
22
|
@logical_path = attributes[:logical_path]
|
24
23
|
@metadata = attributes[:metadata]
|
25
|
-
@mtime = attributes[:mtime]
|
26
24
|
@name = attributes[:name]
|
27
25
|
@source = attributes[:source]
|
28
26
|
@uri = attributes[:uri]
|
@@ -80,14 +78,6 @@ module Sprockets
|
|
80
78
|
metadata[:links] || Set.new
|
81
79
|
end
|
82
80
|
|
83
|
-
# Public: Get all internally required assets that were concated into this
|
84
|
-
# asset.
|
85
|
-
#
|
86
|
-
# Returns Array of String asset URIs.
|
87
|
-
def included
|
88
|
-
metadata[:included]
|
89
|
-
end
|
90
|
-
|
91
81
|
# Public: Return `String` of concatenated source.
|
92
82
|
#
|
93
83
|
# Returns String.
|
@@ -120,22 +110,22 @@ module Sprockets
|
|
120
110
|
end
|
121
111
|
alias_method :bytesize, :length
|
122
112
|
|
113
|
+
# Public: Returns String byte digest of source.
|
114
|
+
def digest
|
115
|
+
metadata[:digest]
|
116
|
+
end
|
117
|
+
|
123
118
|
# Public: Returns String hexdigest of source.
|
124
119
|
def hexdigest
|
125
|
-
DigestUtils.pack_hexdigest(
|
120
|
+
DigestUtils.pack_hexdigest(digest)
|
126
121
|
end
|
127
122
|
|
128
|
-
# Deprecated: Returns String hexdigest of source.
|
129
|
-
#
|
130
|
-
# In 4.x this will be changed to return a raw Digest byte String.
|
131
|
-
alias_method :digest, :hexdigest
|
132
|
-
|
133
123
|
# Pubic: ETag String of Asset.
|
134
124
|
alias_method :etag, :hexdigest
|
135
125
|
|
136
126
|
# Public: Returns String base64 digest of source.
|
137
127
|
def base64digest
|
138
|
-
DigestUtils.pack_base64digest(
|
128
|
+
DigestUtils.pack_base64digest(digest)
|
139
129
|
end
|
140
130
|
|
141
131
|
# Public: A "named information" URL for subresource integrity.
|
@@ -166,9 +156,6 @@ module Sprockets
|
|
166
156
|
f.write source
|
167
157
|
end
|
168
158
|
|
169
|
-
# Set mtime correctly
|
170
|
-
File.utime(mtime, mtime, filename)
|
171
|
-
|
172
159
|
nil
|
173
160
|
end
|
174
161
|
|
data/lib/sprockets/autoload.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
module Sprockets
|
2
2
|
module Autoload
|
3
|
+
autoload :Babel, 'sprockets/autoload/babel'
|
3
4
|
autoload :Closure, 'sprockets/autoload/closure'
|
4
5
|
autoload :CoffeeScript, 'sprockets/autoload/coffee_script'
|
5
6
|
autoload :Eco, 'sprockets/autoload/eco'
|
6
7
|
autoload :EJS, 'sprockets/autoload/ejs'
|
8
|
+
autoload :JSMinC, 'sprockets/autoload/jsminc'
|
7
9
|
autoload :Sass, 'sprockets/autoload/sass'
|
10
|
+
autoload :SassC, 'sprockets/autoload/sassc'
|
8
11
|
autoload :Uglifier, 'sprockets/autoload/uglifier'
|
9
12
|
autoload :YUI, 'sprockets/autoload/yui'
|
10
13
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'sprockets/autoload'
|
2
|
+
require 'sprockets/path_utils'
|
3
|
+
require 'sprockets/source_map_utils'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Sprockets
|
7
|
+
class BabelProcessor
|
8
|
+
VERSION = '1'
|
9
|
+
|
10
|
+
def self.instance
|
11
|
+
@instance ||= new
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.call(input)
|
15
|
+
instance.call(input)
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(options = {})
|
19
|
+
@options = options.merge({
|
20
|
+
'blacklist' => (options['blacklist'] || []) + ['useStrict'],
|
21
|
+
'sourceMap' => true
|
22
|
+
}).freeze
|
23
|
+
|
24
|
+
@cache_key = [
|
25
|
+
self.class.name,
|
26
|
+
Autoload::Babel::Transpiler::VERSION,
|
27
|
+
Autoload::Babel::Source::VERSION,
|
28
|
+
VERSION,
|
29
|
+
@options
|
30
|
+
].freeze
|
31
|
+
end
|
32
|
+
|
33
|
+
def call(input)
|
34
|
+
data = input[:data]
|
35
|
+
|
36
|
+
result = input[:cache].fetch(@cache_key + [input[:filename]] + [data]) do
|
37
|
+
opts = {
|
38
|
+
'sourceRoot' => input[:load_path],
|
39
|
+
'moduleRoot' => nil,
|
40
|
+
'filename' => input[:filename],
|
41
|
+
'filenameRelative' => PathUtils.split_subpath(input[:load_path], input[:filename])
|
42
|
+
}.merge(@options)
|
43
|
+
|
44
|
+
if opts['moduleIds'] && opts['moduleRoot']
|
45
|
+
opts['moduleId'] ||= File.join(opts['moduleRoot'], input[:name])
|
46
|
+
elsif opts['moduleIds']
|
47
|
+
opts['moduleId'] ||= input[:name]
|
48
|
+
end
|
49
|
+
Autoload::Babel::Transpiler.transform(data, opts)
|
50
|
+
end
|
51
|
+
|
52
|
+
map = SourceMapUtils.decode_json_source_map(JSON.generate(result['map']))
|
53
|
+
map = SourceMapUtils.combine_source_maps(input[:metadata][:map], map["mappings"])
|
54
|
+
|
55
|
+
{ data: result['code'], map: map }
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/sprockets/base.rb
CHANGED
@@ -5,18 +5,18 @@ require 'sprockets/configuration'
|
|
5
5
|
require 'sprockets/digest_utils'
|
6
6
|
require 'sprockets/errors'
|
7
7
|
require 'sprockets/loader'
|
8
|
-
require 'sprockets/path_digest_utils'
|
9
8
|
require 'sprockets/path_dependency_utils'
|
9
|
+
require 'sprockets/path_digest_utils'
|
10
10
|
require 'sprockets/path_utils'
|
11
11
|
require 'sprockets/resolve'
|
12
12
|
require 'sprockets/server'
|
13
|
-
require 'sprockets/
|
13
|
+
require 'sprockets/source_map_utils'
|
14
14
|
require 'sprockets/uri_tar'
|
15
15
|
|
16
16
|
module Sprockets
|
17
17
|
# `Base` class for `Environment` and `Cached`.
|
18
18
|
class Base
|
19
|
-
include PathUtils, PathDependencyUtils, PathDigestUtils, DigestUtils
|
19
|
+
include PathUtils, PathDependencyUtils, PathDigestUtils, DigestUtils, SourceMapUtils
|
20
20
|
include Configuration
|
21
21
|
include Server
|
22
22
|
include Resolve, Loader
|
@@ -60,17 +60,17 @@ module Sprockets
|
|
60
60
|
end
|
61
61
|
|
62
62
|
# Find asset by logical path or expanded path.
|
63
|
-
def find_asset(
|
64
|
-
uri, _ = resolve(
|
63
|
+
def find_asset(*args)
|
64
|
+
uri, _ = resolve(*args)
|
65
65
|
if uri
|
66
66
|
load(uri)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
def find_all_linked_assets(
|
71
|
-
return to_enum(__method__,
|
70
|
+
def find_all_linked_assets(*args)
|
71
|
+
return to_enum(__method__, *args) unless block_given?
|
72
72
|
|
73
|
-
asset = find_asset(
|
73
|
+
asset = find_asset(*args)
|
74
74
|
return unless asset
|
75
75
|
|
76
76
|
yield asset
|
data/lib/sprockets/bower.rb
CHANGED
@@ -17,7 +17,7 @@ module Sprockets
|
|
17
17
|
candidates, deps = super
|
18
18
|
|
19
19
|
# bower.json can only be nested one level deep
|
20
|
-
if !logical_path.index('/')
|
20
|
+
if !logical_path.index('/'.freeze)
|
21
21
|
dirname = File.join(load_path, logical_path)
|
22
22
|
|
23
23
|
if directory?(dirname)
|
@@ -27,7 +27,9 @@ module Sprockets
|
|
27
27
|
if filename
|
28
28
|
deps << build_file_digest_uri(filename)
|
29
29
|
read_bower_main(dirname, filename) do |path|
|
30
|
-
|
30
|
+
if file?(path)
|
31
|
+
candidates << path
|
32
|
+
end
|
31
33
|
end
|
32
34
|
end
|
33
35
|
end
|
data/lib/sprockets/bundle.rb
CHANGED
@@ -17,7 +17,7 @@ module Sprockets
|
|
17
17
|
type = input[:content_type]
|
18
18
|
dependencies = Set.new(input[:metadata][:dependencies])
|
19
19
|
|
20
|
-
processed_uri, deps = env.resolve(input[:filename], accept: type, pipeline: :self
|
20
|
+
processed_uri, deps = env.resolve(input[:filename], accept: type, pipeline: :self)
|
21
21
|
dependencies.merge(deps)
|
22
22
|
|
23
23
|
find_required = proc { |uri| env.load(uri).metadata[:required] }
|