Commit 55d05bf8 authored by Mike Greiling's avatar Mike Greiling

lazy-load ace config so that we can ensure window.gon exists

parent 70c3b984
...@@ -7,21 +7,28 @@ ace_modes = Dir[ace_gem_path + '/vendor/assets/javascripts/ace/mode-*.js'].sort. ...@@ -7,21 +7,28 @@ ace_modes = Dir[ace_gem_path + '/vendor/assets/javascripts/ace/mode-*.js'].sort.
File.basename(file, '.js').sub(/^mode-/, '') File.basename(file, '.js').sub(/^mode-/, '')
end end
%> %>
// Lazy-load configuration when ace.edit is called
(function() { (function() {
var basePath;
var ace = window.ace;
var edit = ace.edit;
ace.edit = function() {
window.gon = window.gon || {}; window.gon = window.gon || {};
var basePath = (window.gon.relative_url_root || '').replace(/\/$/, '') + '/assets/ace'; basePath = (window.gon.relative_url_root || '').replace(/\/$/, '') + '/assets/ace';
ace.config.set('basePath', basePath); ace.config.set('basePath', basePath);
// configure paths for all worker modules // configure paths for all worker modules
<% ace_workers.each do |worker| %> <% ace_workers.each do |worker| %>
<% filename = File.basename(asset_path("ace/worker-#{worker}.js")) %> ace.config.setModuleUrl('ace/mode/<%= worker %>_worker', basePath + '/<%= File.basename(asset_path("ace/worker-#{worker}.js")) %>');
ace.config.setModuleUrl('ace/mode/<%= worker %>_worker', basePath + '/<%= filename %>');
<% end %> <% end %>
// configure paths for all mode modules // configure paths for all mode modules
<% ace_modes.each do |mode| %> <% ace_modes.each do |mode| %>
<% filename = File.basename(asset_path("ace/mode-#{mode}.js")) %> ace.config.setModuleUrl('ace/mode/<%= mode %>', basePath + '/<%= File.basename(asset_path("ace/mode-#{mode}.js")) %>');
ace.config.setModuleUrl('ace/mode/<%= mode %>', basePath + '/<%= filename %>');
<% end %> <% end %>
// restore original method
ace.edit = edit;
return ace.edit.apply(ace, arguments);
};
})(); })();
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment