code_poetry-html 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -0
- data/assets/javascripts/application.js +7 -1
- data/assets/stylesheets/pure-min.css +1 -1
- data/assets/stylesheets/screen.css.scss +15 -10
- data/lib/code_poetry-html/version.rb +1 -1
- data/lib/code_poetry-html.rb +1 -21
- data/public/application.css +14 -10
- data/public/application.js +7 -1
- data/views/file_list.erb +4 -6
- data/views/layout.erb +2 -1
- data/views/source_file.erb +47 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e087e52851d0634e55520992d52db1f94e7b4503
|
4
|
+
data.tar.gz: b44b8cdec5026513fb24acc3828e91f4feca7791
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7a21c7dc1562c5675408136d6facc59b924eb8ebe57777587d24de748c831cb2be9a9ba7b08e5fa917a77beea441edfc86ccb8ea8404d3aa55649b5e2ab8b00
|
7
|
+
data.tar.gz: 8c36170ff81289cb102d30e8fe8ab4a282de05b0b3a2fbfb949bd983b6a1a288c9c203ab7e59ba1eae7e95990556eadaba0b1965fce7256edac903cd74d2bbd7
|
data/README.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Default HTML formatter for CodePoetry
|
2
2
|
|
3
|
+
[![Gem Version][rgb]][rgl] [![Code Climate][ccb]][ccl]
|
4
|
+
|
3
5
|
It generates a clean and simple HTML report for [CodePoetry][cp].
|
4
6
|
|
7
|
+
[rgb]: https://badge.fury.io/rb/code_poetry-html.png
|
8
|
+
[rgl]: http://badge.fury.io/rb/code_poetry-html
|
9
|
+
[ccb]: https://codeclimate.com/github/coding-chimp/code_poetry-html.png
|
10
|
+
[ccl]: https://codeclimate.com/github/coding-chimp/code_poetry-html
|
11
|
+
|
5
12
|
[cp]: https://github.com/coding-chimp/code_poetry
|
@@ -20,12 +20,18 @@ $(document).ready(function() {
|
|
20
20
|
|
21
21
|
$(document).ready(function() {
|
22
22
|
$(".src_link").fancybox({
|
23
|
-
minWidth:
|
23
|
+
minWidth: 800,
|
24
24
|
helpers: {
|
25
25
|
title: null
|
26
26
|
}
|
27
27
|
});
|
28
28
|
});
|
29
29
|
|
30
|
+
$(".toggle-smells, .toggle-source").on("click", function() {
|
31
|
+
var table = $(this).closest(".source_table")
|
32
|
+
table.find("li").toggleClass("pure-menu-selected")
|
33
|
+
table.find(".smell-view, .source-view").toggle()
|
34
|
+
});
|
35
|
+
|
30
36
|
$("abbr.timeago").timeago();
|
31
37
|
});
|
@@ -8,4 +8,4 @@ https://github.com/yui/pure/blob/master/LICENSE.md
|
|
8
8
|
normalize.css v1.1.2 | MIT License | git.io/normalize
|
9
9
|
Copyright (c) Nicolas Gallagher and Jonathan Neal
|
10
10
|
*/
|
11
|
-
/* normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}input[type=text],input[type=password],input[type=email],input[type=url],input[type=date],input[type=month],input[type=time],input[type=datetime],input[type=datetime-local],input[type=week],input[type=number],input[type=search],input[type=tel],input[type=color],select,textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=week]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,select:focus,textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}
|
11
|
+
/* normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}input[type=text],input[type=password],input[type=email],input[type=url],input[type=date],input[type=month],input[type=time],input[type=datetime],input[type=datetime-local],input[type=week],input[type=number],input[type=search],input[type=tel],input[type=color],select,textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=week]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,select:focus,textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}
|
@@ -55,14 +55,23 @@ th {
|
|
55
55
|
.source_files { display: none }
|
56
56
|
|
57
57
|
.source_table {
|
58
|
-
|
59
|
-
|
60
|
-
// margin: 0;
|
61
|
-
// margin-bottom: 4px;
|
58
|
+
.pure-menu {
|
59
|
+
background-color: #F9F9F9;
|
62
60
|
}
|
63
|
-
|
64
|
-
|
61
|
+
|
62
|
+
.smell-view {
|
63
|
+
ul { margin: 25px 15px }
|
64
|
+
|
65
|
+
li {
|
66
|
+
list-style: none;
|
67
|
+
margin-top: 10px;
|
68
|
+
}
|
69
|
+
|
70
|
+
.smell { color: #000 }
|
71
|
+
.smell-name { font-size: 18px }
|
72
|
+
.smell-complexity { font-size: 14px }
|
65
73
|
}
|
74
|
+
|
66
75
|
pre {
|
67
76
|
margin: 0;
|
68
77
|
padding: 0;
|
@@ -122,7 +131,3 @@ abbr.timeago {
|
|
122
131
|
text-decoration: none;
|
123
132
|
border: none;
|
124
133
|
}
|
125
|
-
|
126
|
-
.green { color: #090 }
|
127
|
-
.red { color: #900 }
|
128
|
-
.yellow { color: #da0 }
|
data/lib/code_poetry-html.rb
CHANGED
@@ -42,26 +42,6 @@ private
|
|
42
42
|
template('file_list').result(binding)
|
43
43
|
end
|
44
44
|
|
45
|
-
def class_complexity_css_class(complexity)
|
46
|
-
if complexity > 150
|
47
|
-
'red'
|
48
|
-
elsif complexity > 100
|
49
|
-
'yellow'
|
50
|
-
else
|
51
|
-
'green'
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def method_complexity_css_class(complexity)
|
56
|
-
if complexity > 40
|
57
|
-
'red'
|
58
|
-
elsif complexity > 20
|
59
|
-
'yellow'
|
60
|
-
else
|
61
|
-
'green'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
45
|
def id(stat)
|
66
46
|
Digest::SHA1.hexdigest(stat.file)
|
67
47
|
end
|
@@ -78,7 +58,7 @@ private
|
|
78
58
|
method = stat.get_method_at_line(line_number)
|
79
59
|
|
80
60
|
unless method.nil?
|
81
|
-
'smelly' if method
|
61
|
+
'smelly' if method.smelly?
|
82
62
|
end
|
83
63
|
end
|
84
64
|
end
|
data/public/application.css
CHANGED
@@ -9,7 +9,7 @@ normalize.css v1.1.2 | MIT License | git.io/normalize
|
|
9
9
|
Copyright (c) Nicolas Gallagher and Jonathan Neal
|
10
10
|
*/
|
11
11
|
/* normalize.css v1.1.2 | MIT License | git.io/normalize */
|
12
|
-
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}input[type=text],input[type=password],input[type=email],input[type=url],input[type=date],input[type=month],input[type=time],input[type=datetime],input[type=datetime-local],input[type=week],input[type=number],input[type=search],input[type=tel],input[type=color],select,textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=week]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,select:focus,textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}
|
12
|
+
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}input[type=text],input[type=password],input[type=email],input[type=url],input[type=date],input[type=month],input[type=time],input[type=datetime],input[type=datetime-local],input[type=week],input[type=number],input[type=search],input[type=tel],input[type=color],select,textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,input[type=date]:focus,input[type=month]:focus,input[type=time]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=week]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=color]:focus,select:focus,textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}
|
13
13
|
/*
|
14
14
|
Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars)
|
15
15
|
*/
|
@@ -467,6 +467,19 @@ th {
|
|
467
467
|
.source_files {
|
468
468
|
display: none; }
|
469
469
|
|
470
|
+
.source_table .pure-menu {
|
471
|
+
background-color: #F9F9F9; }
|
472
|
+
.source_table .smell-view ul {
|
473
|
+
margin: 25px 15px; }
|
474
|
+
.source_table .smell-view li {
|
475
|
+
list-style: none;
|
476
|
+
margin-top: 10px; }
|
477
|
+
.source_table .smell-view .smell {
|
478
|
+
color: black; }
|
479
|
+
.source_table .smell-view .smell-name {
|
480
|
+
font-size: 18px; }
|
481
|
+
.source_table .smell-view .smell-complexity {
|
482
|
+
font-size: 14px; }
|
470
483
|
.source_table pre {
|
471
484
|
margin: 0;
|
472
485
|
padding: 0;
|
@@ -516,14 +529,5 @@ abbr.timeago {
|
|
516
529
|
text-decoration: none;
|
517
530
|
border: none; }
|
518
531
|
|
519
|
-
.green {
|
520
|
-
color: #009900; }
|
521
|
-
|
522
|
-
.red {
|
523
|
-
color: #990000; }
|
524
|
-
|
525
|
-
.yellow {
|
526
|
-
color: #ddaa00; }
|
527
|
-
|
528
532
|
|
529
533
|
|
data/public/application.js
CHANGED
@@ -425,12 +425,18 @@ $(document).ready(function() {
|
|
425
425
|
|
426
426
|
$(document).ready(function() {
|
427
427
|
$(".src_link").fancybox({
|
428
|
-
minWidth:
|
428
|
+
minWidth: 800,
|
429
429
|
helpers: {
|
430
430
|
title: null
|
431
431
|
}
|
432
432
|
});
|
433
433
|
});
|
434
434
|
|
435
|
+
$(".toggle-smells, .toggle-source").on("click", function() {
|
436
|
+
var table = $(this).closest(".source_table")
|
437
|
+
table.find("li").toggleClass("pure-menu-selected")
|
438
|
+
table.find(".smell-view, .source-view").toggle()
|
439
|
+
});
|
440
|
+
|
435
441
|
$("abbr.timeago").timeago();
|
436
442
|
});
|
data/views/file_list.erb
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
<th>Lines</th>
|
7
7
|
<th>Lines of Code</th>
|
8
8
|
<th>Churns</th>
|
9
|
+
<th>Smells</th>
|
9
10
|
<th>Complexity</th>
|
10
11
|
<th>Complexity/Method</th>
|
11
12
|
</tr>
|
@@ -17,12 +18,9 @@
|
|
17
18
|
<td><%= stat.lines.count %></td>
|
18
19
|
<td><%= stat.lines_of_code %></td>
|
19
20
|
<td><%= stat.churns %></td>
|
20
|
-
<td
|
21
|
-
|
22
|
-
|
23
|
-
<td class="<%= method_complexity_css_class(stat.complexity_per_method) %>">
|
24
|
-
<%= stat.complexity_per_method %>
|
25
|
-
</td>
|
21
|
+
<td><%= stat.smells.count %></td>
|
22
|
+
<td><%= stat.complexity %></td>
|
23
|
+
<td><%= stat.complexity_per_method %></td>
|
26
24
|
</tr>
|
27
25
|
<% end %>
|
28
26
|
</tbody>
|
data/views/layout.erb
CHANGED
@@ -19,7 +19,8 @@
|
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div id="footer">
|
22
|
-
Generated <%= timeago(Time.now) %> by
|
22
|
+
Generated <%= timeago(Time.now) %> by
|
23
|
+
<a href="http://github.com/coding-chimp/code_poetry">code_poetry</a> v<%= CodePoetry::VERSION %>
|
23
24
|
and code_poetry-html v<%= CodePoetry::Formatter::HTMLFormatter::VERSION %>
|
24
25
|
</div>
|
25
26
|
|
data/views/source_file.erb
CHANGED
@@ -3,14 +3,52 @@
|
|
3
3
|
<h2 class="subhead"><%= stat.name %></h2>
|
4
4
|
</div>
|
5
5
|
|
6
|
-
<
|
7
|
-
<
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
<div class="pure-menu pure-menu-open pure-menu-horizontal">
|
7
|
+
<ul>
|
8
|
+
<li class="pure-menu-selected"><a class="toggle-smells" href="#">Smell View</a></li>
|
9
|
+
<li><a class="toggle-source" href="#">Source View</a></li>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="smell-view">
|
14
|
+
<ul>
|
15
|
+
<% if stat.smells.empty? %>
|
16
|
+
<li>Nothing smelly to report! Hurray!</li>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% stat.smells.each do |smell| %>
|
20
|
+
<% if smell.complex_class? %>
|
21
|
+
<li>
|
22
|
+
<span class="smell">Complex class</span>
|
23
|
+
<span class="smell-complexity">(complexity <%= stat.complexity %>)</span>
|
24
|
+
</li>
|
25
|
+
<% elsif smell.complex_class_definition? %>
|
26
|
+
<li>
|
27
|
+
<span class="smell">Complex</span> code in
|
28
|
+
<span class="smell-name"><%= stat.name %></span> definition outside of methods
|
29
|
+
<span class="smell-complexity">(complexity <%= stat.definition_complexity %>)</span>
|
30
|
+
</li>
|
31
|
+
<% elsif smell.complex_method? %>
|
32
|
+
<li>
|
33
|
+
<span class="smell">Complex method</span>
|
34
|
+
<span class="smell-name"><%= smell.method.pretty_name %></span>
|
35
|
+
<span class="smell-complexity">(complexity <%= smell.method.complexity %>)</span>
|
36
|
+
</li>
|
37
|
+
<% end %>
|
13
38
|
<% end %>
|
14
|
-
</
|
15
|
-
</
|
39
|
+
</ul>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="source-view" style="display: none;">
|
43
|
+
<pre>
|
44
|
+
<p><%= stat.file %></p>
|
45
|
+
<ol>
|
46
|
+
<% stat.lines.each do |number, line| %>
|
47
|
+
<li class="<%= line_status(stat, number) %>" data-linenumber="<%= number %>">
|
48
|
+
<code class="ruby"><%= CGI.escapeHTML(line.chomp) %></code>
|
49
|
+
</li>
|
50
|
+
<% end %>
|
51
|
+
</ol>
|
52
|
+
</pre>
|
53
|
+
</div>
|
16
54
|
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_poetry-html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bastian Bartmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|