Skip to content

Commit 43aa499

Browse files
committedMar 22, 2015
Fix Processor.load_asset_code with FP*
The amount of FP here probably calls out for a new class with its own private methods. * Functional Programming
1 parent 2a37c46 commit 43aa499

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed
 

Diff for: ‎lib/opal/sprockets/processor.rb

+11-10
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,24 @@ def self.load_asset_code(sprockets, name)
8888
asset = sprockets[name.sub(/(\.js)?$/, '.js')]
8989
return '' if asset.nil?
9090

91-
module_name = -> asset { asset.logical_path.sub(/\.js$/, '').inspect }
91+
module_name = -> asset { asset.logical_path.sub(/\.js$/, '') }
9292
mark_as_loaded = -> path { "Opal.mark_as_loaded(#{path.inspect});" }
93-
non_opal_assets = ([asset]+asset.dependencies).select do |a|
94-
asset_engines = ::Sprockets::AssetAttributes.new(sprockets, a.pathname).engines
95-
processed_by_opal = asset_engines.any? { |engine| engine <= ::Opal::Processor }
96-
not(processed_by_opal)
97-
end
93+
processed_by_opal = -> asset, sprockets {
94+
attributes = ::Sprockets::AssetAttributes.new(sprockets, asset.pathname)
95+
attributes.engines.any? { |engine| engine <= ::Opal::Processor }
96+
}
9897

99-
loaded_paths = stubbed_files.to_a +
100-
non_opal_assets.map {|a| module_name[asset] }
98+
non_opal_assets = ([asset]+asset.dependencies)
99+
.select { |asset| not(processed_by_opal[asset, sprockets]) }
100+
.map { |asset| module_name[asset] }
101101

102-
mark_as_loaded = loaded_paths.map { |path| mark_as_loaded[path] }
102+
mark_as_loaded = (non_opal_assets + stubbed_files.to_a)
103+
.map { |path| mark_as_loaded[path] }
103104

104105
<<-JS
105106
if (typeof(Opal) !== 'undefined') {
106107
#{mark_as_loaded.join("\n")}
107-
Opal.load(#{module_name[asset]});
108+
Opal.load(#{module_name[asset].inspect});
108109
}
109110
JS
110111
end

0 commit comments

Comments
 (0)
Please sign in to comment.