pmdtester 1.0.0.pre.beta3 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/build.sh +67 -0
  3. data/.ci/files/env.gpg +1 -0
  4. data/.ci/inc/install-openjdk.inc +26 -0
  5. data/.ci/manual-integration-tests.sh +20 -0
  6. data/.github/workflows/build.yml +39 -0
  7. data/.github/workflows/manual-integration-tests.yml +32 -0
  8. data/.gitignore +9 -0
  9. data/.hoerc +1 -1
  10. data/.rubocop.yml +13 -2
  11. data/.rubocop_todo.yml +7 -8
  12. data/.ruby-version +1 -0
  13. data/Gemfile +1 -12
  14. data/History.md +104 -0
  15. data/Manifest.txt +30 -6
  16. data/README.rdoc +110 -60
  17. data/Rakefile +27 -15
  18. data/config/all-java.xml +1 -1
  19. data/config/design.xml +1 -1
  20. data/config/projectlist_1_0_0.xsd +2 -1
  21. data/config/projectlist_1_1_0.xsd +31 -0
  22. data/lib/pmdtester.rb +12 -4
  23. data/lib/pmdtester/builders/liquid_renderer.rb +73 -0
  24. data/lib/pmdtester/builders/pmd_report_builder.rb +134 -60
  25. data/lib/pmdtester/builders/project_builder.rb +100 -0
  26. data/lib/pmdtester/builders/project_hasher.rb +126 -0
  27. data/lib/pmdtester/builders/rule_set_builder.rb +94 -48
  28. data/lib/pmdtester/builders/simple_progress_logger.rb +27 -0
  29. data/lib/pmdtester/builders/summary_report_builder.rb +62 -117
  30. data/lib/pmdtester/cmd.rb +15 -1
  31. data/lib/pmdtester/collection_by_file.rb +55 -0
  32. data/lib/pmdtester/parsers/options.rb +25 -2
  33. data/lib/pmdtester/parsers/pmd_report_document.rb +79 -27
  34. data/lib/pmdtester/parsers/projects_parser.rb +2 -4
  35. data/lib/pmdtester/pmd_branch_detail.rb +36 -12
  36. data/lib/pmdtester/pmd_configerror.rb +62 -0
  37. data/lib/pmdtester/pmd_error.rb +34 -34
  38. data/lib/pmdtester/pmd_report_detail.rb +10 -13
  39. data/lib/pmdtester/pmd_tester_utils.rb +57 -0
  40. data/lib/pmdtester/pmd_violation.rb +66 -26
  41. data/lib/pmdtester/project.rb +28 -23
  42. data/lib/pmdtester/report_diff.rb +194 -70
  43. data/lib/pmdtester/resource_locator.rb +4 -0
  44. data/lib/pmdtester/runner.rb +81 -54
  45. data/pmdtester.gemspec +64 -0
  46. data/resources/_includes/diff_pill_row.html +6 -0
  47. data/resources/css/bootstrap.min.css +7 -0
  48. data/resources/css/datatables.min.css +36 -0
  49. data/resources/css/pmd-tester.css +132 -0
  50. data/resources/js/bootstrap.min.js +7 -0
  51. data/resources/js/code-snippets.js +73 -0
  52. data/resources/js/datatables.min.js +726 -0
  53. data/resources/js/jquery-3.2.1.slim.min.js +4 -0
  54. data/resources/js/jquery.min.js +2 -0
  55. data/resources/js/popper.min.js +5 -0
  56. data/resources/js/project-report.js +136 -0
  57. data/resources/project_diff_report.html +205 -0
  58. data/resources/project_index.html +102 -0
  59. metadata +122 -38
  60. data/.travis.yml +0 -22
  61. data/lib/pmdtester/builders/diff_builder.rb +0 -30
  62. data/lib/pmdtester/builders/diff_report_builder.rb +0 -225
  63. data/lib/pmdtester/builders/html_report_builder.rb +0 -33
  64. data/resources/css/maven-base.css +0 -155
  65. 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
-