16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/screw_unit/representations/spec.html.rb', line 16
def head_content
core_js_files
script(raw(<<-JS), :type => "text/javascript")
(function($) {
Screw.Assets = {};
Screw.Assets.use_cache_buster = false; // TODO: NS/CTI - make this configurable from the UI.
var required_paths = [];
var included_stylesheets = {};
var cache_buster = parseInt(new Date().getTime()/(1*1000));
function tag(name, attributes) {
var html = "<" + name;
for(var attribute in attributes) {
html += (" " + attribute + "='" + attributes[attribute]) + "'";
};
html += "></";
html += name;
html += ">";
return html;
}
Screw.Assets.require = function(javascript_path, onload) {
if(!required_paths[javascript_path]) {
var full_path = javascript_path + ".js";
if (Screw.Assets.use_cache_buster) {
full_path += '?' + cache_buster;
}
document.write(tag("script", {src: full_path, type: 'text/javascript'}));
if(onload) {
var scripts = document.getElementsByTagName('script');
scripts[scripts.length-1].onload = onload;
}
required_paths[javascript_path] = true;
}
};
Screw.Assets.stylesheet = function(stylesheet_path) {
if(!included_stylesheets[stylesheet_path]) {
var full_path = stylesheet_path + ".css";
if(Screw.Assets.use_cache_buster) {
full_path += '?' + cache_buster;
}
document.write(tag("link", {rel: 'stylesheet', type: 'text/css', href: full_path}));
included_stylesheets[stylesheet_path] = true;
}
};
window.require = Screw.Assets.require;
window.stylesheet = Screw.Assets.stylesheet;
})(jQuery);
(function($) {
var ajax = $.ajax;
$(Screw).bind('after', function() {
var error_text = $(".error").map(function(i, error_element) {
var element = $(error_element);
var parent_descriptions = element.parents("li.describe");
var parent_description_text = [];
for(var i=parent_descriptions.length-1; i >= 0; i--) {
parent_description_text.push($(parent_descriptions[i]).find("h1").text());
}
var it_text = element.parents("li.it").find("h2").text();
return parent_description_text.join(" ") + " " + it_text + ": " + element.text();
}).get().join("\\n");
ajax({
type: "POST",
url: '#{ScrewUnit::Resources::SeleniumSession.path("/finish")}',
data: {"text": error_text, "session_id": '#{session_id}'}
});
});
})(jQuery);
JS
project_js_files
link :rel => "stylesheet", :href => "/core/screw.css"
project_css_files
spec_script_elements
end
|