kolekti_cc_phpmd 5.0.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.
@@ -0,0 +1,62 @@
1
+ require 'json'
2
+ require 'kolekti'
3
+ require 'cc/analyzer/formatters/formatter'
4
+
5
+ module Kolekti
6
+ module CcPhpMd
7
+ class Parser < CC::Analyzer::Formatters::Formatter
8
+ def initialize(collector, wanted_metric_configurations, persistence_strategy)
9
+ @collector = collector
10
+ @persistence_strategy = persistence_strategy
11
+ @wanted_metric_configurations = metric_configurations_by_name(wanted_metric_configurations)
12
+ end
13
+
14
+ def write(data)
15
+ begin
16
+ jsdata = JSON.parse(data)
17
+ rescue JSON::ParserError
18
+ raise Kolekti::CollectorError.new("Failed parsing CodeClimate JSON data")
19
+ end
20
+
21
+ return true if jsdata["type"] != "issue"
22
+
23
+ metric_configuration = @wanted_metric_configurations[jsdata["check_name"]]
24
+ return true if metric_configuration.nil?
25
+
26
+ location = jsdata["location"] || {}
27
+ path = location["path"]
28
+ lines = location["lines"] || {}
29
+ line_number = lines["begin"]
30
+ message = jsdata["description"]
31
+
32
+ raise Kolekti::CollectorError.new("Unexpected CodeClimate JSON data") if !path || !line_number || !message
33
+
34
+ @persistence_strategy.create_hotspot_metric_result(metric_configuration, module_name_for_path(path),
35
+ line_number, message)
36
+ true
37
+ end
38
+
39
+ def failed(output)
40
+ raise Kolekti::CollectorError.new("CodeClimate runner failed: #{output}")
41
+ end
42
+
43
+ private
44
+
45
+ def metric_configurations_by_name(metric_configurations)
46
+ result = {}
47
+ metric_configurations.each_value do |metric_configuration|
48
+ metric = metric_configuration.metric
49
+ if metric.respond_to?(:metric_collector_name) && metric.metric_collector_name == @collector.name
50
+ result[metric.name] = metric_configuration
51
+ end
52
+ end
53
+ result
54
+ end
55
+
56
+ def module_name_for_path(file_path)
57
+ without_extension = file_path.rpartition('.').first
58
+ without_extension.gsub('.', '_').gsub('/', '.')
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,3 @@
1
+ module KolektiCcPhpmd
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+
3
+ declare -a args=()
4
+
5
+ while [ $# -gt 0 ]; do
6
+ case "$1" in
7
+ --rm) ;;
8
+ --rm=true) ;;
9
+ --cap-drop) shift ;;
10
+ --cap-drop=*) ;;
11
+ *) args+=("$1") ;;
12
+ esac
13
+ shift
14
+ done
15
+
16
+ exec /usr/bin/docker "${args[@]}"
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kolekti_cc_phpmd
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Miranda
8
+ - Diego Araújo
9
+ - Eduardo Araújo
10
+ - Rafael Reggiani Manzo
11
+ autorequire:
12
+ bindir: exe
13
+ cert_chain: []
14
+ date: 2018-03-06 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: codeclimate
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 0.35.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.35.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: kolekti
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '1.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: bundler
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '1.11'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.11'
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '10.0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '10.0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rspec
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '3.0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '3.0'
86
+ - !ruby/object:Gem::Dependency
87
+ name: cucumber
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: 2.1.0
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 2.1.0
100
+ - !ruby/object:Gem::Dependency
101
+ name: simplecov
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: factory_girl
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 4.5.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 4.5.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: codeclimate-test-reporter
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: 1.0.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "<"
140
+ - !ruby/object:Gem::Version
141
+ version: 1.0.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: byebug
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ description:
157
+ email:
158
+ - danielkza2@gmail.com
159
+ - diegoamc90@gmail.com
160
+ - duduktamg@hotmail.com
161
+ - rr.manzo@protonmail.com
162
+ executables: []
163
+ extensions: []
164
+ extra_rdoc_files: []
165
+ files:
166
+ - ".config/cucumber.yml"
167
+ - ".gitignore"
168
+ - ".rspec"
169
+ - ".ruby-gemset"
170
+ - ".ruby-version"
171
+ - CHANGELOG.md
172
+ - COPYING
173
+ - COPYING.lesser
174
+ - Gemfile
175
+ - README.md
176
+ - Rakefile
177
+ - bin/console
178
+ - bin/setup
179
+ - circle.yml
180
+ - gem_tasks/cucumber.rake
181
+ - kolekti_cc_phpmd.gemspec
182
+ - lib/kolekti/cc_phpmd.rb
183
+ - lib/kolekti/cc_phpmd/collector.rb
184
+ - lib/kolekti/cc_phpmd/metrics.yml
185
+ - lib/kolekti/cc_phpmd/parser.rb
186
+ - lib/kolekti/cc_phpmd/version.rb
187
+ - scripts/docker-circle-ci
188
+ homepage: https://gitlab.com/mezuro/mezuro/tree/master/kalibro/kolekti_cc_phpmd
189
+ licenses: []
190
+ metadata: {}
191
+ post_install_message:
192
+ rdoc_options: []
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ requirements: []
206
+ rubyforge_project:
207
+ rubygems_version: 2.6.11
208
+ signing_key:
209
+ specification_version: 4
210
+ summary: Metric collecting support for PHP that servers Kolekti.
211
+ test_files: []