pmdtester 1.0.0.pre.beta3 → 1.1.2
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/.ci/build.sh +67 -0
- data/.ci/files/env.gpg +1 -0
- data/.ci/inc/install-openjdk.inc +26 -0
- data/.ci/manual-integration-tests.sh +20 -0
- data/.github/workflows/build.yml +39 -0
- data/.github/workflows/manual-integration-tests.yml +32 -0
- data/.gitignore +9 -0
- data/.hoerc +1 -1
- data/.rubocop.yml +13 -2
- data/.rubocop_todo.yml +7 -8
- data/.ruby-version +1 -0
- data/Gemfile +1 -12
- data/History.md +104 -0
- data/Manifest.txt +30 -6
- data/README.rdoc +110 -60
- data/Rakefile +27 -15
- data/config/all-java.xml +1 -1
- data/config/design.xml +1 -1
- data/config/projectlist_1_0_0.xsd +2 -1
- data/config/projectlist_1_1_0.xsd +31 -0
- data/lib/pmdtester.rb +12 -4
- data/lib/pmdtester/builders/liquid_renderer.rb +73 -0
- data/lib/pmdtester/builders/pmd_report_builder.rb +134 -60
- data/lib/pmdtester/builders/project_builder.rb +100 -0
- data/lib/pmdtester/builders/project_hasher.rb +126 -0
- data/lib/pmdtester/builders/rule_set_builder.rb +94 -48
- data/lib/pmdtester/builders/simple_progress_logger.rb +27 -0
- data/lib/pmdtester/builders/summary_report_builder.rb +62 -117
- data/lib/pmdtester/cmd.rb +15 -1
- data/lib/pmdtester/collection_by_file.rb +55 -0
- data/lib/pmdtester/parsers/options.rb +25 -2
- data/lib/pmdtester/parsers/pmd_report_document.rb +79 -27
- data/lib/pmdtester/parsers/projects_parser.rb +2 -4
- data/lib/pmdtester/pmd_branch_detail.rb +36 -12
- data/lib/pmdtester/pmd_configerror.rb +62 -0
- data/lib/pmdtester/pmd_error.rb +34 -34
- data/lib/pmdtester/pmd_report_detail.rb +10 -13
- data/lib/pmdtester/pmd_tester_utils.rb +57 -0
- data/lib/pmdtester/pmd_violation.rb +66 -26
- data/lib/pmdtester/project.rb +28 -23
- data/lib/pmdtester/report_diff.rb +194 -70
- data/lib/pmdtester/resource_locator.rb +4 -0
- data/lib/pmdtester/runner.rb +81 -54
- data/pmdtester.gemspec +64 -0
- data/resources/_includes/diff_pill_row.html +6 -0
- data/resources/css/bootstrap.min.css +7 -0
- data/resources/css/datatables.min.css +36 -0
- data/resources/css/pmd-tester.css +132 -0
- data/resources/js/bootstrap.min.js +7 -0
- data/resources/js/code-snippets.js +73 -0
- data/resources/js/datatables.min.js +726 -0
- data/resources/js/jquery-3.2.1.slim.min.js +4 -0
- data/resources/js/jquery.min.js +2 -0
- data/resources/js/popper.min.js +5 -0
- data/resources/js/project-report.js +136 -0
- data/resources/project_diff_report.html +205 -0
- data/resources/project_index.html +102 -0
- metadata +122 -38
- data/.travis.yml +0 -22
- data/lib/pmdtester/builders/diff_builder.rb +0 -30
- data/lib/pmdtester/builders/diff_report_builder.rb +0 -225
- data/lib/pmdtester/builders/html_report_builder.rb +0 -33
- data/resources/css/maven-base.css +0 -155
- data/resources/css/maven-theme.css +0 -171
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module PmdTester
|
4
|
-
# This class is the parent of all classes which is used to build html report
|
5
|
-
class HtmlReportBuilder
|
6
|
-
CSS_SRC_DIR = ResourceLocator.locate('resources/css')
|
7
|
-
|
8
|
-
def build_html_report(title_name)
|
9
|
-
html_builder = Nokogiri::HTML::Builder.new do |doc|
|
10
|
-
doc.html do
|
11
|
-
build_head(doc, title_name)
|
12
|
-
build_body(doc)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
html_builder.to_html
|
16
|
-
end
|
17
|
-
|
18
|
-
def build_head(doc, title_name)
|
19
|
-
doc.head do
|
20
|
-
doc.title title_name
|
21
|
-
|
22
|
-
doc.style(type: 'text/css', media: 'all') do
|
23
|
-
doc.text '@import url("./css/maven-base.css");@import url("./css/maven-theme.css");'
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def copy_css(report_dir)
|
29
|
-
css_dest_dir = "#{report_dir}/css"
|
30
|
-
FileUtils.copy_entry(CSS_SRC_DIR, css_dest_dir)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,155 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
margin: 0px;
|
3
|
-
padding: 0px;
|
4
|
-
}
|
5
|
-
img {
|
6
|
-
border:none;
|
7
|
-
}
|
8
|
-
table {
|
9
|
-
padding:0px;
|
10
|
-
width: 100%;
|
11
|
-
margin-left: -2px;
|
12
|
-
margin-right: -2px;
|
13
|
-
}
|
14
|
-
acronym {
|
15
|
-
cursor: help;
|
16
|
-
border-bottom: 1px dotted #feb;
|
17
|
-
}
|
18
|
-
table.bodyTable th, table.bodyTable td {
|
19
|
-
padding: 2px 4px 2px 4px;
|
20
|
-
vertical-align: top;
|
21
|
-
}
|
22
|
-
div.clear{
|
23
|
-
clear:both;
|
24
|
-
visibility: hidden;
|
25
|
-
}
|
26
|
-
div.clear hr{
|
27
|
-
display: none;
|
28
|
-
}
|
29
|
-
#bannerLeft, #bannerRight {
|
30
|
-
font-size: xx-large;
|
31
|
-
font-weight: bold;
|
32
|
-
}
|
33
|
-
#bannerLeft img, #bannerRight img {
|
34
|
-
margin: 0px;
|
35
|
-
}
|
36
|
-
.xleft, #bannerLeft img {
|
37
|
-
float:left;
|
38
|
-
}
|
39
|
-
.xright, #bannerRight {
|
40
|
-
float:right;
|
41
|
-
}
|
42
|
-
#banner {
|
43
|
-
padding: 0px;
|
44
|
-
}
|
45
|
-
#banner img {
|
46
|
-
border: none;
|
47
|
-
}
|
48
|
-
#breadcrumbs {
|
49
|
-
padding: 3px 10px 3px 10px;
|
50
|
-
}
|
51
|
-
#leftColumn {
|
52
|
-
width: 170px;
|
53
|
-
float:left;
|
54
|
-
overflow: auto;
|
55
|
-
}
|
56
|
-
#bodyColumn {
|
57
|
-
margin-right: 1.5em;
|
58
|
-
margin-left: 197px;
|
59
|
-
}
|
60
|
-
#legend {
|
61
|
-
padding: 8px 0 8px 0;
|
62
|
-
}
|
63
|
-
#navcolumn {
|
64
|
-
padding: 8px 4px 0 8px;
|
65
|
-
}
|
66
|
-
#navcolumn h5 {
|
67
|
-
margin: 0;
|
68
|
-
padding: 0;
|
69
|
-
font-size: small;
|
70
|
-
}
|
71
|
-
#navcolumn ul {
|
72
|
-
margin: 0;
|
73
|
-
padding: 0;
|
74
|
-
font-size: small;
|
75
|
-
}
|
76
|
-
#navcolumn li {
|
77
|
-
list-style-type: none;
|
78
|
-
background-image: none;
|
79
|
-
background-repeat: no-repeat;
|
80
|
-
background-position: 0 0.4em;
|
81
|
-
padding-left: 16px;
|
82
|
-
list-style-position: outside;
|
83
|
-
line-height: 1.2em;
|
84
|
-
font-size: smaller;
|
85
|
-
}
|
86
|
-
#navcolumn li.expanded {
|
87
|
-
background-image: url(../images/expanded.gif);
|
88
|
-
}
|
89
|
-
#navcolumn li.collapsed {
|
90
|
-
background-image: url(../images/collapsed.gif);
|
91
|
-
}
|
92
|
-
#navcolumn li.none {
|
93
|
-
text-indent: -1em;
|
94
|
-
margin-left: 1em;
|
95
|
-
}
|
96
|
-
#poweredBy {
|
97
|
-
text-align: center;
|
98
|
-
}
|
99
|
-
#navcolumn img {
|
100
|
-
margin-top: 10px;
|
101
|
-
margin-bottom: 3px;
|
102
|
-
}
|
103
|
-
#poweredBy img {
|
104
|
-
display:block;
|
105
|
-
margin: 20px 0 20px 17px;
|
106
|
-
}
|
107
|
-
#search img {
|
108
|
-
margin: 0px;
|
109
|
-
display: block;
|
110
|
-
}
|
111
|
-
#search #q, #search #btnG {
|
112
|
-
border: 1px solid #999;
|
113
|
-
margin-bottom:10px;
|
114
|
-
}
|
115
|
-
#search form {
|
116
|
-
margin: 0px;
|
117
|
-
}
|
118
|
-
#lastPublished {
|
119
|
-
font-size: x-small;
|
120
|
-
}
|
121
|
-
.navSection {
|
122
|
-
margin-bottom: 2px;
|
123
|
-
padding: 8px;
|
124
|
-
}
|
125
|
-
.navSectionHead {
|
126
|
-
font-weight: bold;
|
127
|
-
font-size: x-small;
|
128
|
-
}
|
129
|
-
.section {
|
130
|
-
padding: 4px;
|
131
|
-
}
|
132
|
-
#footer {
|
133
|
-
padding: 3px 10px 3px 10px;
|
134
|
-
font-size: x-small;
|
135
|
-
}
|
136
|
-
#breadcrumbs {
|
137
|
-
font-size: x-small;
|
138
|
-
margin: 0pt;
|
139
|
-
}
|
140
|
-
.source {
|
141
|
-
padding: 12px;
|
142
|
-
margin: 1em 7px 1em 7px;
|
143
|
-
}
|
144
|
-
.source pre {
|
145
|
-
margin: 0px;
|
146
|
-
padding: 0px;
|
147
|
-
}
|
148
|
-
#navcolumn img.imageLink, .imageLink {
|
149
|
-
padding-left: 0px;
|
150
|
-
padding-bottom: 0px;
|
151
|
-
padding-top: 0px;
|
152
|
-
padding-right: 2px;
|
153
|
-
border: 0px;
|
154
|
-
margin: 0px;
|
155
|
-
}
|
@@ -1,171 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
padding: 0px 0px 10px 0px;
|
3
|
-
}
|
4
|
-
body, td, select, input, li{
|
5
|
-
font-family: Verdana, Helvetica, Arial, sans-serif;
|
6
|
-
font-size: 13px;
|
7
|
-
}
|
8
|
-
code{
|
9
|
-
font-family: Courier, monospace;
|
10
|
-
font-size: 13px;
|
11
|
-
}
|
12
|
-
a {
|
13
|
-
text-decoration: none;
|
14
|
-
}
|
15
|
-
a:link {
|
16
|
-
color:#36a;
|
17
|
-
}
|
18
|
-
a:visited {
|
19
|
-
color:#47a;
|
20
|
-
}
|
21
|
-
a:active, a:hover {
|
22
|
-
color:#69c;
|
23
|
-
}
|
24
|
-
#legend li.externalLink {
|
25
|
-
background: url(../images/external.png) left top no-repeat;
|
26
|
-
padding-left: 18px;
|
27
|
-
}
|
28
|
-
a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
|
29
|
-
background: url(../images/external.png) right center no-repeat;
|
30
|
-
padding-right: 18px;
|
31
|
-
}
|
32
|
-
#legend li.newWindow {
|
33
|
-
background: url(../images/newwindow.png) left top no-repeat;
|
34
|
-
padding-left: 18px;
|
35
|
-
}
|
36
|
-
a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
|
37
|
-
background: url(../images/newwindow.png) right center no-repeat;
|
38
|
-
padding-right: 18px;
|
39
|
-
}
|
40
|
-
h2 {
|
41
|
-
padding: 4px 4px 4px 6px;
|
42
|
-
border: 1px solid #999;
|
43
|
-
color: #900;
|
44
|
-
background-color: #ddd;
|
45
|
-
font-weight:900;
|
46
|
-
font-size: x-large;
|
47
|
-
}
|
48
|
-
h3 {
|
49
|
-
padding: 4px 4px 4px 6px;
|
50
|
-
border: 1px solid #aaa;
|
51
|
-
color: #900;
|
52
|
-
background-color: #eee;
|
53
|
-
font-weight: normal;
|
54
|
-
font-size: large;
|
55
|
-
}
|
56
|
-
h4 {
|
57
|
-
font-weight: normal;
|
58
|
-
font-size: large;
|
59
|
-
}
|
60
|
-
h5 {
|
61
|
-
padding: 4px 4px 4px 6px;
|
62
|
-
color: #900;
|
63
|
-
font-size: normal;
|
64
|
-
}
|
65
|
-
p {
|
66
|
-
line-height: 1.3em;
|
67
|
-
font-size: small;
|
68
|
-
}
|
69
|
-
#breadcrumbs {
|
70
|
-
border-top: 1px solid #aaa;
|
71
|
-
border-bottom: 1px solid #aaa;
|
72
|
-
background-color: #ccc;
|
73
|
-
}
|
74
|
-
#leftColumn {
|
75
|
-
margin: 10px 0 0 5px;
|
76
|
-
border: 1px solid #999;
|
77
|
-
background-color: #eee;
|
78
|
-
}
|
79
|
-
#navcolumn h5 {
|
80
|
-
font-size: smaller;
|
81
|
-
border-bottom: 1px solid #aaaaaa;
|
82
|
-
padding-top: 2px;
|
83
|
-
color: #000;
|
84
|
-
}
|
85
|
-
|
86
|
-
table.bodyTable th {
|
87
|
-
color: white;
|
88
|
-
background-color: #bbb;
|
89
|
-
text-align: left;
|
90
|
-
font-weight: bold;
|
91
|
-
}
|
92
|
-
|
93
|
-
table.bodyTable th, table.bodyTable td {
|
94
|
-
font-size: 1em;
|
95
|
-
}
|
96
|
-
|
97
|
-
table.bodyTable tr.a {
|
98
|
-
background-color: #af8;
|
99
|
-
}
|
100
|
-
|
101
|
-
table.bodyTable tr.b {
|
102
|
-
background-color: #fca;
|
103
|
-
}
|
104
|
-
|
105
|
-
table.bodyTable tr.c {
|
106
|
-
background-color: #eee;
|
107
|
-
}
|
108
|
-
|
109
|
-
table.bodyTable tr.d {
|
110
|
-
background-color: #fef7bc;
|
111
|
-
}
|
112
|
-
|
113
|
-
table.bodyTable td.a {
|
114
|
-
background-color: #af8;
|
115
|
-
}
|
116
|
-
|
117
|
-
table.bodyTable td.b {
|
118
|
-
background-color: #fca;
|
119
|
-
}
|
120
|
-
|
121
|
-
table.bodyTable td.c {
|
122
|
-
background-color: #eee;
|
123
|
-
}
|
124
|
-
|
125
|
-
.source {
|
126
|
-
border: 1px solid #999;
|
127
|
-
}
|
128
|
-
dl {
|
129
|
-
padding: 4px 4px 4px 6px;
|
130
|
-
border: 1px solid #aaa;
|
131
|
-
background-color: #ffc;
|
132
|
-
}
|
133
|
-
dt {
|
134
|
-
color: #900;
|
135
|
-
}
|
136
|
-
|
137
|
-
#banner {
|
138
|
-
border-bottom: 1px solid #fff;
|
139
|
-
}
|
140
|
-
|
141
|
-
button {
|
142
|
-
background-color: #ddd;
|
143
|
-
border: none;
|
144
|
-
color: #900;
|
145
|
-
padding: 6px 12px;
|
146
|
-
text-align: center;
|
147
|
-
text-decoration: none;
|
148
|
-
display: inline-block;
|
149
|
-
font-size: 25px;
|
150
|
-
margin: 4px 2px;
|
151
|
-
cursor: pointer;
|
152
|
-
}
|
153
|
-
|
154
|
-
#example {
|
155
|
-
position: relative;
|
156
|
-
}
|
157
|
-
|
158
|
-
#example-checkbox {
|
159
|
-
display: none;
|
160
|
-
}
|
161
|
-
|
162
|
-
#example-checkbox:checked + #example:after {
|
163
|
-
content: attr(data-text);
|
164
|
-
position: absolute;
|
165
|
-
top: 0;
|
166
|
-
left: 0;
|
167
|
-
right: 0;
|
168
|
-
bottom: 0;
|
169
|
-
background: white;
|
170
|
-
}
|
171
|
-
|