@@ -75,6 +75,14 @@ def build(path, options = {})
75
75
self
76
76
end
77
77
78
+ def build_str ( source , filename , options = { } )
79
+ process_string ( source , filename , options )
80
+ end
81
+
82
+ def build_require ( path , options = { } )
83
+ process_require ( path , options )
84
+ end
85
+
78
86
def process_string ( source , filename , options )
79
87
fname = path_reader . expand ( filename ) . to_s
80
88
asset = processor_for ( source , filename , fname , requirable : false )
@@ -84,6 +92,7 @@ def process_string(source, filename, options)
84
92
end
85
93
86
94
def process_require ( filename , options )
95
+ return if prerequired . include? ( filename )
87
96
return if processed . include? filename
88
97
processed << filename
89
98
@@ -105,7 +114,16 @@ def find_asset(path)
105
114
if asset = cached_asset ( path )
106
115
asset
107
116
else
108
- source = read path
117
+ source = stub? ( path ) ? '' : read ( path )
118
+
119
+ if source . nil?
120
+ message = "can't find file: #{ filename . inspect } "
121
+ case @compiler_options [ :dynamic_require_severity ]
122
+ when :error then raise LoadError , message
123
+ when :warning then warn "can't find file: #{ filename . inspect } "
124
+ end
125
+ end
126
+
109
127
fname = path_reader . expand ( path ) . to_s
110
128
asset = processor_for ( source , path , fname , requirable : true )
111
129
end
@@ -119,27 +137,6 @@ def cached_asset(path)
119
137
end
120
138
end
121
139
122
- def build_str source , filename , options = { }
123
- #if cached = cache_store.retrieve(filename) and
124
- # puts "CACHED: #{filename}"
125
- # process_requires cached.requires, options
126
- # processed << cached
127
-
128
- # return self
129
- #end
130
-
131
- path = path_reader . expand ( filename ) . to_s unless stub? ( filename )
132
- asset = processor_for ( source , filename , path , options )
133
- requires = preload + asset . requires + tree_requires ( asset , path )
134
- requires . map { |r | process_require ( r , options ) }
135
- processed << asset
136
- self
137
- end
138
-
139
- def build_require ( path , options = { } )
140
- process_require ( path , options )
141
- end
142
-
143
140
def to_s
144
141
assets . map ( &:to_s ) . join ( "\n " )
145
142
end
@@ -148,7 +145,7 @@ def source_map
148
145
assets . map ( &:source_map ) . reduce ( :+ ) . as_json . to_json
149
146
end
150
147
151
- attr_reader :processed
148
+ attr_reader :assets
152
149
153
150
attr_accessor :processors , :default_processor , :path_reader ,
154
151
:compiler_options , :stubs , :prerequired , :preload
0 commit comments