Skip to content

Commit 0c8b4db

Browse files
committedMar 24, 2014
Add Kernel#require_remote along with opal-parser
This is primarily to support script with src attr pointing to an rb file and also to make it easy to require stuff from all "text/ruby" scripts.
1 parent b553c71 commit 0c8b4db

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed
 

‎stdlib/opal-parser.rb

+15-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ def eval(str)
88
code = Opal.compile str
99
`eval(#{code})`
1010
end
11+
12+
def require_remote url
13+
source = %x{
14+
var r = new XMLHttpRequest();
15+
r.open("GET", url, false);
16+
r.send('');
17+
return r.responseText;
18+
}
19+
eval source
20+
end
1121
end
1222

1323
%x{
@@ -23,11 +33,13 @@ def eval(str)
2333
};
2434
2535
function run_ruby_scripts() {
26-
var tags = document.getElementsByTagName('script');
36+
var tag, tags = document.getElementsByTagName('script');
2737
2838
for (var i = 0, len = tags.length; i < len; i++) {
29-
if (tags[i].type === "text/ruby") {
30-
Opal.eval(tags[i].innerHTML);
39+
tag = tags[i];
40+
if (tag.type === "text/ruby") {
41+
if (tag.src) Opal.Kernel.$require_remote(tag.src);
42+
if (tag.innerHTML) Opal.Kernel.$eval(tag.innerHTML);
3143
}
3244
}
3345
}

0 commit comments

Comments
 (0)
Please sign in to comment.