simplecov-html 0.10.2 → 0.12.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +0 -1
- data/.rubocop.yml +42 -17
- data/.tool-versions +1 -0
- data/.travis.yml +15 -20
- data/CHANGELOG.md +72 -4
- data/Gemfile +10 -21
- data/Gemfile.lock +59 -0
- data/Guardfile +2 -0
- data/README.md +3 -3
- data/Rakefile +10 -5
- data/assets/javascripts/application.js +29 -34
- data/assets/javascripts/libraries/jquery-3.4.1.js +10598 -0
- data/assets/javascripts/plugins/jquery.colorbox.js +1101 -1086
- data/assets/javascripts/plugins/jquery.dataTables.js +15008 -0
- data/assets/javascripts/plugins/jquery.timeago.js +135 -44
- data/assets/stylesheets/plugins/datatables.css +462 -0
- data/assets/stylesheets/screen.css +316 -0
- data/lib/simplecov-html/version.rb +3 -1
- data/lib/simplecov-html.rb +28 -0
- data/public/DataTables-1.10.20/images/sort_asc.png +0 -0
- data/public/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
- data/public/DataTables-1.10.20/images/sort_both.png +0 -0
- data/public/DataTables-1.10.20/images/sort_desc.png +0 -0
- data/public/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
- data/public/application.css +1 -799
- data/public/application.js +7 -1707
- data/simplecov-html.gemspec +5 -4
- data/test/helper.rb +2 -0
- data/test/test_simple_cov-html.rb +3 -1
- data/views/covered_percent.erb +3 -0
- data/views/file_list.erb +63 -30
- data/views/layout.erb +8 -8
- data/views/source_file.erb +40 -9
- metadata +33 -40
- data/assets/javascripts/libraries/jquery-1.6.2.min.js +0 -18
- data/assets/javascripts/plugins/jquery.dataTables.min.js +0 -152
- data/assets/javascripts/plugins/jquery.url.js +0 -174
- data/assets/stylesheets/screen.css.sass +0 -220
- /data/public/{smoothness/images → images}/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_flat_75_ffffff_40x100.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_glass_65_ffffff_1x400.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_glass_75_dadada_1x400.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- /data/public/{smoothness/images → images}/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- /data/public/{smoothness/images → images}/ui-icons_222222_256x240.png +0 -0
- /data/public/{smoothness/images → images}/ui-icons_2e83ff_256x240.png +0 -0
- /data/public/{smoothness/images → images}/ui-icons_454545_256x240.png +0 -0
- /data/public/{smoothness/images → images}/ui-icons_888888_256x240.png +0 -0
- /data/public/{smoothness/images → images}/ui-icons_cd0a0a_256x240.png +0 -0
@@ -1,174 +0,0 @@
|
|
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
|
-
}();
|
@@ -1,220 +0,0 @@
|
|
1
|
-
#loading
|
2
|
-
position: fixed
|
3
|
-
left: 40%
|
4
|
-
top: 50%
|
5
|
-
|
6
|
-
a
|
7
|
-
color: #333
|
8
|
-
text-decoration: none
|
9
|
-
&:hover
|
10
|
-
color: #000
|
11
|
-
text-decoration: underline
|
12
|
-
|
13
|
-
body
|
14
|
-
font-family: "Lucida Grande", Helvetica, "Helvetica Neue", Arial, sans-serif
|
15
|
-
padding: 12px
|
16
|
-
background-color: #333
|
17
|
-
|
18
|
-
h1, h2, h3, h4
|
19
|
-
color: #1C2324
|
20
|
-
margin: 0
|
21
|
-
padding: 0
|
22
|
-
margin-bottom: 12px
|
23
|
-
|
24
|
-
table
|
25
|
-
width: 100%
|
26
|
-
|
27
|
-
#content
|
28
|
-
clear: left
|
29
|
-
background-color: white
|
30
|
-
border: 2px solid #ddd
|
31
|
-
border-top: 8px solid #ddd
|
32
|
-
padding: 18px
|
33
|
-
-webkit-border-bottom-left-radius: 5px
|
34
|
-
-webkit-border-bottom-right-radius: 5px
|
35
|
-
-webkit-border-top-right-radius: 5px
|
36
|
-
-moz-border-radius-bottomleft: 5px
|
37
|
-
-moz-border-radius-bottomright: 5px
|
38
|
-
-moz-border-radius-topright: 5px
|
39
|
-
border-bottom-left-radius: 5px
|
40
|
-
border-bottom-right-radius: 5px
|
41
|
-
border-top-right-radius: 5px
|
42
|
-
|
43
|
-
.dataTables_filter, .dataTables_info
|
44
|
-
padding: 2px 6px
|
45
|
-
|
46
|
-
abbr.timeago
|
47
|
-
text-decoration: none
|
48
|
-
border: none
|
49
|
-
font-weight: bold
|
50
|
-
|
51
|
-
.timestamp
|
52
|
-
float: right
|
53
|
-
color: #ddd
|
54
|
-
|
55
|
-
.group_tabs
|
56
|
-
list-style: none
|
57
|
-
float: left
|
58
|
-
margin: 0
|
59
|
-
padding: 0
|
60
|
-
li
|
61
|
-
display: inline
|
62
|
-
float: left
|
63
|
-
a
|
64
|
-
font-family: Helvetica, Arial, sans-serif
|
65
|
-
display: block
|
66
|
-
float: left
|
67
|
-
text-decoration: none
|
68
|
-
padding: 4px 8px
|
69
|
-
background-color: #aaa
|
70
|
-
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dddddd), to(#aaaaaa))
|
71
|
-
background: -moz-linear-gradient(#dddddd, #aaaaaa)
|
72
|
-
background: linear-gradient(#dddddd, #aaaaaa)
|
73
|
-
text-shadow: #e5e5e5 1px 1px 0px
|
74
|
-
border-bottom: none
|
75
|
-
color: #333
|
76
|
-
font-weight: bold
|
77
|
-
margin-right: 8px
|
78
|
-
border-top: 1px solid #efefef
|
79
|
-
-webkit-border-top-left-radius: 2px
|
80
|
-
-webkit-border-top-right-radius: 2px
|
81
|
-
-moz-border-radius-topleft: 2px
|
82
|
-
-moz-border-radius-topright: 2px
|
83
|
-
border-top-left-radius: 2px
|
84
|
-
border-top-right-radius: 2px
|
85
|
-
&:hover
|
86
|
-
background-color: #ccc
|
87
|
-
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#eeeeee), to(#aaaaaa))
|
88
|
-
background: -moz-linear-gradient(#eeeeee, #aaaaaa)
|
89
|
-
background: linear-gradient(#eeeeee, #aaaaaa)
|
90
|
-
&:active
|
91
|
-
padding-top: 5px
|
92
|
-
padding-bottom: 3px
|
93
|
-
&.active a
|
94
|
-
color: black
|
95
|
-
text-shadow: #fff 1px 1px 0px
|
96
|
-
background-color: #ddd
|
97
|
-
background: -webkit-gradient(linear, 0 0, 0 bottom, from(white), to(#dddddd))
|
98
|
-
background: -moz-linear-gradient(white, #dddddd)
|
99
|
-
background: linear-gradient(white, #dddddd)
|
100
|
-
|
101
|
-
.file_list
|
102
|
-
margin-bottom: 18px
|
103
|
-
|
104
|
-
a.src_link
|
105
|
-
background: url('./magnify.png') no-repeat left 50%
|
106
|
-
padding-left: 18px
|
107
|
-
|
108
|
-
tr, td
|
109
|
-
margin: 0
|
110
|
-
padding: 0
|
111
|
-
|
112
|
-
th
|
113
|
-
white-space: nowrap
|
114
|
-
&.ui-state-default
|
115
|
-
cursor: pointer
|
116
|
-
span.ui-icon
|
117
|
-
float: left
|
118
|
-
|
119
|
-
td
|
120
|
-
padding: 4px 8px
|
121
|
-
&.strong
|
122
|
-
font-weight: bold
|
123
|
-
|
124
|
-
.source_table
|
125
|
-
h3, h4
|
126
|
-
padding: 0
|
127
|
-
margin: 0
|
128
|
-
margin-bottom: 4px
|
129
|
-
.header
|
130
|
-
padding: 10px
|
131
|
-
pre
|
132
|
-
margin: 0
|
133
|
-
padding: 0
|
134
|
-
white-space: normal
|
135
|
-
color: #000
|
136
|
-
font-family: "Monaco", "Inconsolata", "Consolas", monospace
|
137
|
-
code
|
138
|
-
color: #000
|
139
|
-
font-family: "Monaco", "Inconsolata", "Consolas", monospace
|
140
|
-
pre
|
141
|
-
background-color: #333
|
142
|
-
ol
|
143
|
-
margin: 0px
|
144
|
-
padding: 0px
|
145
|
-
margin-left: 45px
|
146
|
-
font-size: 12px
|
147
|
-
color: white
|
148
|
-
li
|
149
|
-
margin: 0px
|
150
|
-
padding: 2px 6px
|
151
|
-
border-left: 5px solid white
|
152
|
-
code
|
153
|
-
white-space: pre
|
154
|
-
white-space: pre-wrap
|
155
|
-
.hits
|
156
|
-
float: right
|
157
|
-
margin-left: 10px
|
158
|
-
padding: 2px 4px
|
159
|
-
background-color: #444
|
160
|
-
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#222222), to(#666666))
|
161
|
-
background: -moz-linear-gradient(#222222, #666666)
|
162
|
-
background: linear-gradient(#222222, #666666)
|
163
|
-
color: white
|
164
|
-
font-family: Helvetica, "Helvetica Neue", Arial, sans-serif
|
165
|
-
font-size: 10px
|
166
|
-
font-weight: bold
|
167
|
-
text-align: center
|
168
|
-
border-radius: 6px
|
169
|
-
|
170
|
-
#footer
|
171
|
-
color: #ddd
|
172
|
-
font-size: 12px
|
173
|
-
font-weight: bold
|
174
|
-
margin-top: 12px
|
175
|
-
text-align: right
|
176
|
-
a
|
177
|
-
color: #eee
|
178
|
-
text-decoration: underline
|
179
|
-
&:hover
|
180
|
-
color: #fff
|
181
|
-
text-decoration: none
|
182
|
-
|
183
|
-
.green
|
184
|
-
color: #090
|
185
|
-
|
186
|
-
.red
|
187
|
-
color: #900
|
188
|
-
|
189
|
-
.yellow
|
190
|
-
color: #da0
|
191
|
-
|
192
|
-
.source_table
|
193
|
-
.covered
|
194
|
-
border-color: #090
|
195
|
-
.missed
|
196
|
-
border-color: #900
|
197
|
-
.never
|
198
|
-
border-color: black
|
199
|
-
.skipped
|
200
|
-
border-color: #fc0
|
201
|
-
.covered
|
202
|
-
&:nth-child(odd)
|
203
|
-
background-color: #CDF2CD
|
204
|
-
&:nth-child(even)
|
205
|
-
background-color: #DBF2DB
|
206
|
-
.missed
|
207
|
-
&:nth-child(odd)
|
208
|
-
background-color: #F7C0C0
|
209
|
-
&:nth-child(even)
|
210
|
-
background-color: #F7CFCF
|
211
|
-
.never
|
212
|
-
&:nth-child(odd)
|
213
|
-
background-color: #efefef
|
214
|
-
&:nth-child(even)
|
215
|
-
background-color: #f4f4f4
|
216
|
-
.skipped
|
217
|
-
&:nth-child(odd)
|
218
|
-
background-color: #FBF0C0
|
219
|
-
&:nth-child(even)
|
220
|
-
background-color: #FBFfCf
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|