12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/helpers/opal_helper.rb', line 12
def javascript_include_tag(*sources)
options = sources..symbolize_keys
debug = options[:debug] != false
skip_loader = options.delete(:skip_opal_loader)
force_opal_loader_tag = options.delete(:force_opal_loader_tag) || debug
return super(*sources, options) if skip_loader && !force_opal_loader_tag
script_tags = "".html_safe
sources.each do |source|
load_asset_code = Opal::Sprockets.load_asset(source)
loading_code = "if(window.Opal && Opal.modules[#{source.to_json}]){#{load_asset_code}}"
if force_opal_loader_tag
script_tags << super(source, options)
script_tags << "\n".html_safe + javascript_tag(loading_code)
else
script_tags << super(source, options.merge(onload: loading_code))
end
end
script_tags
end
|