sprockets 3.7.2 → 4.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- 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] }
|