simplecov-html 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +5 -5
- data/VERSION +1 -1
- data/assets/app.js +17 -6
- data/assets/jquery.url.js +174 -0
- data/simplecov-html.gemspec +3 -2
- data/views/file_list.erb +3 -2
- data/views/layout.erb +1 -0
- metadata +4 -3
data/README.rdoc
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
= HTML formatter for SimpleCov
|
2
2
|
|
3
|
-
Note: To learn more about SimpleCov, check out the main repo at http://github.com/colszowka/simplecov
|
3
|
+
=== Note: To learn more about SimpleCov, check out the main repo at http://github.com/colszowka/simplecov
|
4
4
|
|
5
|
-
Generates a nice HTML
|
5
|
+
Generates a nice HTML report of your SimpleCov coverage results on Ruby 1.9 using client-side Javascript
|
6
|
+
quite extensively.
|
6
7
|
|
7
8
|
To use, add this to your Bundler Gemfile:
|
8
9
|
|
9
|
-
gem 'simplecov-html', '>= 0.3.
|
10
|
+
gem 'simplecov-html', '>= 0.3.5'
|
10
11
|
|
11
|
-
The html formatter will be used automatically.
|
12
|
-
current working directory (supposedly the main dir of your project)
|
12
|
+
The html formatter will be used automatically then.
|
13
13
|
|
14
14
|
== Note on Patches/Pull Requests
|
15
15
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/assets/app.js
CHANGED
@@ -12,35 +12,46 @@ $(document).ready(function() {
|
|
12
12
|
null
|
13
13
|
]
|
14
14
|
});
|
15
|
+
$('.source_table tbody tr:odd').addClass('odd');
|
16
|
+
$('.source_table tbody tr:even').addClass('even');
|
15
17
|
|
16
18
|
$("a.src_link").fancybox({
|
17
19
|
'hideOnContentClick': true
|
18
20
|
});
|
19
21
|
|
20
|
-
|
21
|
-
$('.source_table tbody tr:even').addClass('even');
|
22
|
-
|
22
|
+
// Hide src files and file list container
|
23
23
|
$('.source_files').hide();
|
24
24
|
$('.file_list_container').hide();
|
25
25
|
|
26
|
+
// Add tabs based upon existing file_list_containers
|
26
27
|
$('.file_list_container h2').each(function(){
|
27
|
-
$('.group_tabs').append('<li><a href="' + $(this).attr('id') + '">' + $(this).html() + '</a></li>');
|
28
|
+
$('.group_tabs').append('<li><a href="#' + $(this).parent().attr('id') + '">' + $(this).html() + '</a></li>');
|
28
29
|
});
|
29
30
|
|
31
|
+
$('.group_tabs a').each( function() {
|
32
|
+
$(this).addClass($(this).attr('href').replace('#', ''));
|
33
|
+
});
|
34
|
+
|
30
35
|
$('.group_tabs a').live('focus', function() {
|
31
36
|
$(this).blur();
|
32
37
|
});
|
38
|
+
|
33
39
|
$('.group_tabs a').live('click', function(){
|
34
40
|
if (!$(this).parent().hasClass('active')) {
|
35
41
|
$('.group_tabs a').parent().removeClass('active');
|
36
42
|
$(this).parent().addClass('active');
|
37
43
|
$('.file_list_container').hide();
|
38
|
-
$(".file_list_container
|
44
|
+
$(".file_list_container" + $(this).attr('href')).show();
|
45
|
+
window.location.href = window.location.href.split('#')[0] + $(this).attr('href').replace('#', '#_');
|
39
46
|
};
|
40
47
|
return false;
|
41
48
|
});
|
42
49
|
|
43
|
-
|
50
|
+
if (jQuery.url.attr('anchor')) {
|
51
|
+
$('.group_tabs a.'+jQuery.url.attr('anchor').replace('_', '')).click();
|
52
|
+
} else {
|
53
|
+
$('.group_tabs a:first').click();
|
54
|
+
};
|
44
55
|
|
45
56
|
$("abbr.timeago").timeago();
|
46
57
|
$('#loading').fadeOut();
|
@@ -0,0 +1,174 @@
|
|
1
|
+
// JQuery URL Parser
|
2
|
+
// Written by Mark Perkins, mark@allmarkedup.com
|
3
|
+
// License: http://unlicense.org/ (i.e. do what you want with it!)
|
4
|
+
|
5
|
+
jQuery.url = function()
|
6
|
+
{
|
7
|
+
var segments = {};
|
8
|
+
|
9
|
+
var parsed = {};
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Options object. Only the URI and strictMode values can be changed via the setters below.
|
13
|
+
*/
|
14
|
+
var options = {
|
15
|
+
|
16
|
+
url : window.location, // default URI is the page in which the script is running
|
17
|
+
|
18
|
+
strictMode: false, // 'loose' parsing by default
|
19
|
+
|
20
|
+
key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], // keys available to query
|
21
|
+
|
22
|
+
q: {
|
23
|
+
name: "queryKey",
|
24
|
+
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
|
25
|
+
},
|
26
|
+
|
27
|
+
parser: {
|
28
|
+
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs
|
29
|
+
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs
|
30
|
+
}
|
31
|
+
|
32
|
+
};
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Deals with the parsing of the URI according to the regex above.
|
36
|
+
* Written by Steven Levithan - see credits at top.
|
37
|
+
*/
|
38
|
+
var parseUri = function()
|
39
|
+
{
|
40
|
+
str = decodeURI( options.url );
|
41
|
+
|
42
|
+
var m = options.parser[ options.strictMode ? "strict" : "loose" ].exec( str );
|
43
|
+
var uri = {};
|
44
|
+
var i = 14;
|
45
|
+
|
46
|
+
while ( i-- ) {
|
47
|
+
uri[ options.key[i] ] = m[i] || "";
|
48
|
+
}
|
49
|
+
|
50
|
+
uri[ options.q.name ] = {};
|
51
|
+
uri[ options.key[12] ].replace( options.q.parser, function ( $0, $1, $2 ) {
|
52
|
+
if ($1) {
|
53
|
+
uri[options.q.name][$1] = $2;
|
54
|
+
}
|
55
|
+
});
|
56
|
+
|
57
|
+
return uri;
|
58
|
+
};
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Returns the value of the passed in key from the parsed URI.
|
62
|
+
*
|
63
|
+
* @param string key The key whose value is required
|
64
|
+
*/
|
65
|
+
var key = function( key )
|
66
|
+
{
|
67
|
+
if ( ! parsed.length )
|
68
|
+
{
|
69
|
+
setUp(); // if the URI has not been parsed yet then do this first...
|
70
|
+
}
|
71
|
+
if ( key == "base" )
|
72
|
+
{
|
73
|
+
if ( parsed.port !== null && parsed.port !== "" )
|
74
|
+
{
|
75
|
+
return parsed.protocol+"://"+parsed.host+":"+parsed.port+"/";
|
76
|
+
}
|
77
|
+
else
|
78
|
+
{
|
79
|
+
return parsed.protocol+"://"+parsed.host+"/";
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
return ( parsed[key] === "" ) ? null : parsed[key];
|
84
|
+
};
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Returns the value of the required query string parameter.
|
88
|
+
*
|
89
|
+
* @param string item The parameter whose value is required
|
90
|
+
*/
|
91
|
+
var param = function( item )
|
92
|
+
{
|
93
|
+
if ( ! parsed.length )
|
94
|
+
{
|
95
|
+
setUp(); // if the URI has not been parsed yet then do this first...
|
96
|
+
}
|
97
|
+
return ( parsed.queryKey[item] === null ) ? null : parsed.queryKey[item];
|
98
|
+
};
|
99
|
+
|
100
|
+
/**
|
101
|
+
* 'Constructor' (not really!) function.
|
102
|
+
* Called whenever the URI changes to kick off re-parsing of the URI and splitting it up into segments.
|
103
|
+
*/
|
104
|
+
var setUp = function()
|
105
|
+
{
|
106
|
+
parsed = parseUri();
|
107
|
+
|
108
|
+
getSegments();
|
109
|
+
};
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Splits up the body of the URI into segments (i.e. sections delimited by '/')
|
113
|
+
*/
|
114
|
+
var getSegments = function()
|
115
|
+
{
|
116
|
+
var p = parsed.path;
|
117
|
+
segments = []; // clear out segments array
|
118
|
+
segments = parsed.path.length == 1 ? {} : ( p.charAt( p.length - 1 ) == "/" ? p.substring( 1, p.length - 1 ) : path = p.substring( 1 ) ).split("/");
|
119
|
+
};
|
120
|
+
|
121
|
+
return {
|
122
|
+
|
123
|
+
/**
|
124
|
+
* Sets the parsing mode - either strict or loose. Set to loose by default.
|
125
|
+
*
|
126
|
+
* @param string mode The mode to set the parser to. Anything apart from a value of 'strict' will set it to loose!
|
127
|
+
*/
|
128
|
+
setMode : function( mode )
|
129
|
+
{
|
130
|
+
strictMode = mode == "strict" ? true : false;
|
131
|
+
return this;
|
132
|
+
},
|
133
|
+
|
134
|
+
/**
|
135
|
+
* Sets URI to parse if you don't want to to parse the current page's URI.
|
136
|
+
* Calling the function with no value for newUri resets it to the current page's URI.
|
137
|
+
*
|
138
|
+
* @param string newUri The URI to parse.
|
139
|
+
*/
|
140
|
+
setUrl : function( newUri )
|
141
|
+
{
|
142
|
+
options.url = newUri === undefined ? window.location : newUri;
|
143
|
+
setUp();
|
144
|
+
return this;
|
145
|
+
},
|
146
|
+
|
147
|
+
/**
|
148
|
+
* Returns the value of the specified URI segment. Segments are numbered from 1 to the number of segments.
|
149
|
+
* For example the URI http://test.com/about/company/ segment(1) would return 'about'.
|
150
|
+
*
|
151
|
+
* If no integer is passed into the function it returns the number of segments in the URI.
|
152
|
+
*
|
153
|
+
* @param int pos The position of the segment to return. Can be empty.
|
154
|
+
*/
|
155
|
+
segment : function( pos )
|
156
|
+
{
|
157
|
+
if ( ! parsed.length )
|
158
|
+
{
|
159
|
+
setUp(); // if the URI has not been parsed yet then do this first...
|
160
|
+
}
|
161
|
+
if ( pos === undefined )
|
162
|
+
{
|
163
|
+
return segments.length;
|
164
|
+
}
|
165
|
+
return ( segments[pos] === "" || segments[pos] === undefined ) ? null : segments[pos];
|
166
|
+
},
|
167
|
+
|
168
|
+
attr : key, // provides public access to private 'key' function - see above
|
169
|
+
|
170
|
+
param : param // provides public access to private 'param' function - see above
|
171
|
+
|
172
|
+
};
|
173
|
+
|
174
|
+
}();
|
data/simplecov-html.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{simplecov-html}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Christoph Olszowka"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-25}
|
13
13
|
s.description = %q{HTML formatter for SimpleCov code coverage tool for ruby 1.9+}
|
14
14
|
s.email = %q{christoph at olszowka.de}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -49,6 +49,7 @@ Gem::Specification.new do |s|
|
|
49
49
|
"assets/jquery-1.4.2.min.js",
|
50
50
|
"assets/jquery.dataTables.min.js",
|
51
51
|
"assets/jquery.timeago.js",
|
52
|
+
"assets/jquery.url.js",
|
52
53
|
"assets/loading.gif",
|
53
54
|
"assets/magnify.png",
|
54
55
|
"assets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png",
|
data/views/file_list.erb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
<div class="file_list_container">
|
2
|
-
<h2
|
1
|
+
<div class="file_list_container" id="<%= title.gsub(/[^a-zA-Z]/, '') %>">
|
2
|
+
<h2>
|
3
3
|
<%= title %>
|
4
4
|
(<span class="<%= coverage_css_class(coverage(source_files)) %>"><%= coverage(source_files).round(2) %>%</span>)
|
5
5
|
</h2>
|
6
|
+
<a name="<%= title.gsub(/[^a-zA-Z]/, '') %>"></a>
|
6
7
|
<div>
|
7
8
|
<b><%= source_files.length %></b> files in total.
|
8
9
|
<b><%= lines_of_code(source_files) %></b> relevant lines.
|
data/views/layout.erb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
<script src='<%= assets_path('jquery.dataTables.min.js') %>' type='text/javascript'></script>
|
8
8
|
<script src='<%= assets_path('fancybox/jquery.fancybox-1.3.1.pack.js') %>' type='text/javascript'></script>
|
9
9
|
<script src='<%= assets_path('jquery.timeago.js') %>' type='text/javascript'></script>
|
10
|
+
<script src='<%= assets_path('jquery.url.js') %>' type='text/javascript'></script>
|
10
11
|
<script src='<%= assets_path('app.js') %>' type='text/javascript'></script>
|
11
12
|
<link href='<%= assets_path('stylesheet.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
12
13
|
<link href='<%= assets_path('fancybox/jquery.fancybox-1.3.1.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 5
|
9
|
+
version: 0.3.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Christoph Olszowka
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-25 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- assets/jquery-1.4.2.min.js
|
90
90
|
- assets/jquery.dataTables.min.js
|
91
91
|
- assets/jquery.timeago.js
|
92
|
+
- assets/jquery.url.js
|
92
93
|
- assets/loading.gif
|
93
94
|
- assets/magnify.png
|
94
95
|
- assets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
|