code_poetry-html 0.0.1 → 0.1.0
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.
- 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
|