kolekti_cc_phpmd 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []