cobench 0.0.21 → 0.0.24
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/assets/index.xsl +74 -23
- data/bin/cobench +45 -9
- data/lib/cobench/metrics/commits.rb +1 -2
- data/lib/cobench/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c88b2884af1c5f379f0ffc146188ae2b1c7ab4ffd1fa6690a1bebc1120b2f848
|
4
|
+
data.tar.gz: 4ccd4da7ea79c1f0b121c289a28def7b4decbb6b4792856f59bc0b4ca8cd87d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 884a2cf5e5bff6d1050a94e2abc09ea4c4c96d45144a529ae7e7a9c4b86382ce8ec73841f6119a0c5a42b96896105658b1436e6204ffb99e9bf80733f49204da
|
7
|
+
data.tar.gz: 9a55303410d004305736bcafa56e61c10e323fe698f7c59b210dbb8135e9c5b21836ae9fc29057b26c31cb3761e0634f3fc94230da830ef2237598ad6a722843
|
data/assets/index.xsl
CHANGED
@@ -67,8 +67,14 @@ SOFTWARE.
|
|
67
67
|
</header>
|
68
68
|
<article>
|
69
69
|
<table id="metrics">
|
70
|
-
<
|
70
|
+
<thead>
|
71
|
+
<xsl:apply-templates select="cobench/titles"/>
|
72
|
+
</thead>
|
71
73
|
<xsl:apply-templates select="cobench/coders"/>
|
74
|
+
<tfoot>
|
75
|
+
<xsl:apply-templates select="cobench/totals"/>
|
76
|
+
<xsl:apply-templates select="cobench/averages"/>
|
77
|
+
</tfoot>
|
72
78
|
</table>
|
73
79
|
</article>
|
74
80
|
<footer>
|
@@ -133,6 +139,19 @@ SOFTWARE.
|
|
133
139
|
</xsl:for-each>
|
134
140
|
<xsl:text>.</xsl:text>
|
135
141
|
</p>
|
142
|
+
<p>
|
143
|
+
<xsl:for-each select="cobench/titles/title[@subtitle]">
|
144
|
+
<xsl:if test="position() > 1">
|
145
|
+
<xsl:text>, </xsl:text>
|
146
|
+
</xsl:if>
|
147
|
+
<xsl:text>"</xsl:text>
|
148
|
+
<xsl:value-of select="."/>
|
149
|
+
<xsl:text>"</xsl:text>
|
150
|
+
<xsl:text> stands for </xsl:text>
|
151
|
+
<xsl:value-of select="@subtitle"/>
|
152
|
+
</xsl:for-each>
|
153
|
+
<xsl:text>.</xsl:text>
|
154
|
+
</p>
|
136
155
|
<p>
|
137
156
|
<xsl:text>The numbers you see reflect the activity of the last </xsl:text>
|
138
157
|
<b>
|
@@ -140,6 +159,12 @@ SOFTWARE.
|
|
140
159
|
<xsl:text> days</xsl:text>
|
141
160
|
</b>
|
142
161
|
<xsl:text>.</xsl:text>
|
162
|
+
<br/>
|
163
|
+
<xsl:text>The XML with the data </xsl:text>
|
164
|
+
<a href="index.xml">
|
165
|
+
<xsl:text>is here</xsl:text>
|
166
|
+
</a>
|
167
|
+
<xsl:text>.</xsl:text>
|
143
168
|
</p>
|
144
169
|
</footer>
|
145
170
|
</section>
|
@@ -147,18 +172,42 @@ SOFTWARE.
|
|
147
172
|
</html>
|
148
173
|
</xsl:template>
|
149
174
|
<xsl:template match="cobench/titles">
|
150
|
-
<
|
151
|
-
<
|
152
|
-
|
153
|
-
|
154
|
-
<xsl:
|
155
|
-
|
156
|
-
<
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
175
|
+
<tr>
|
176
|
+
<th/>
|
177
|
+
<th/>
|
178
|
+
<xsl:for-each select="title[generate-id() = generate-id(key('titles', .)[1])]">
|
179
|
+
<xsl:sort select="."/>
|
180
|
+
<th class="sorter num">
|
181
|
+
<xsl:value-of select="."/>
|
182
|
+
</th>
|
183
|
+
</xsl:for-each>
|
184
|
+
</tr>
|
185
|
+
</xsl:template>
|
186
|
+
<xsl:template match="cobench/totals">
|
187
|
+
<xsl:variable name="totals" select="."/>
|
188
|
+
<tr>
|
189
|
+
<td colspan="2" style="text-align:right">Total:</td>
|
190
|
+
<xsl:for-each select="/cobench/titles/title[generate-id() = generate-id(key('titles', .)[1])]">
|
191
|
+
<xsl:sort select="."/>
|
192
|
+
<xsl:variable name="t" select="."/>
|
193
|
+
<td class="num">
|
194
|
+
<xsl:value-of select="$totals/w[@id=$t]"/>
|
195
|
+
</td>
|
196
|
+
</xsl:for-each>
|
197
|
+
</tr>
|
198
|
+
</xsl:template>
|
199
|
+
<xsl:template match="cobench/averages">
|
200
|
+
<xsl:variable name="averages" select="."/>
|
201
|
+
<tr>
|
202
|
+
<td colspan="2" style="text-align:right">Average:</td>
|
203
|
+
<xsl:for-each select="/cobench/titles/title[generate-id() = generate-id(key('titles', .)[1])]">
|
204
|
+
<xsl:sort select="."/>
|
205
|
+
<xsl:variable name="t" select="."/>
|
206
|
+
<td class="num">
|
207
|
+
<xsl:value-of select="$averages/w[@id=$t]"/>
|
208
|
+
</td>
|
209
|
+
</xsl:for-each>
|
210
|
+
</tr>
|
162
211
|
</xsl:template>
|
163
212
|
<xsl:template match="cobench/coders">
|
164
213
|
<tbody>
|
@@ -175,10 +224,12 @@ SOFTWARE.
|
|
175
224
|
<xsl:text>@</xsl:text>
|
176
225
|
<xsl:value-of select="@id"/>
|
177
226
|
</a>
|
178
|
-
<
|
179
|
-
|
180
|
-
<
|
181
|
-
|
227
|
+
<xsl:if test="@details">
|
228
|
+
<br/>
|
229
|
+
<span class="subtitle">
|
230
|
+
<xsl:value-of select="@details"/>
|
231
|
+
</span>
|
232
|
+
</xsl:if>
|
182
233
|
</td>
|
183
234
|
<xsl:for-each select="metrics/m">
|
184
235
|
<xsl:sort select="@id"/>
|
@@ -189,13 +240,13 @@ SOFTWARE.
|
|
189
240
|
<xsl:template match="m">
|
190
241
|
<xsl:variable name="body">
|
191
242
|
<xsl:choose>
|
192
|
-
<xsl:when test="@href
|
193
|
-
<xsl:value-of select="."/>
|
194
|
-
</xsl:when>
|
195
|
-
<xsl:otherwise>
|
243
|
+
<xsl:when test="@href">
|
196
244
|
<a href="{@href}">
|
197
245
|
<xsl:value-of select="."/>
|
198
246
|
</a>
|
247
|
+
</xsl:when>
|
248
|
+
<xsl:otherwise>
|
249
|
+
<xsl:value-of select="."/>
|
199
250
|
</xsl:otherwise>
|
200
251
|
</xsl:choose>
|
201
252
|
</xsl:variable>
|
@@ -203,11 +254,11 @@ SOFTWARE.
|
|
203
254
|
<xsl:choose>
|
204
255
|
<xsl:when test="@actual">
|
205
256
|
<span class="firebrick">
|
206
|
-
<xsl:
|
257
|
+
<xsl:copy-of select="$body"/>
|
207
258
|
</span>
|
208
259
|
</xsl:when>
|
209
260
|
<xsl:otherwise>
|
210
|
-
<xsl:
|
261
|
+
<xsl:copy-of select="$body"/>
|
211
262
|
</xsl:otherwise>
|
212
263
|
</xsl:choose>
|
213
264
|
<xsl:if test="@actual">
|
data/bin/cobench
CHANGED
@@ -121,7 +121,7 @@ def build_xml(opts, loog)
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
caps = {
|
124
|
-
'HoC' => lambda { |ms| ms['
|
124
|
+
'HoC' => lambda { |ms| ms['Pulls'][:total] * 1024 },
|
125
125
|
}
|
126
126
|
data.each do |u, ms|
|
127
127
|
ms.map do |t, h|
|
@@ -136,39 +136,75 @@ def build_xml(opts, loog)
|
|
136
136
|
end
|
137
137
|
weights = {
|
138
138
|
'HoC' => 1,
|
139
|
-
'Pulls' =>
|
139
|
+
'Pulls' => 250,
|
140
140
|
'Issues' => 50,
|
141
141
|
'Commits' => 5,
|
142
|
-
'Reviews' =>
|
142
|
+
'Reviews' => 150
|
143
143
|
}
|
144
144
|
data.each do |u, ms|
|
145
145
|
score = ms.map do |t, h|
|
146
146
|
raise "Unknown title '#{t}'" unless weights.key?(t)
|
147
147
|
h[:total] * weights[t]
|
148
148
|
end.inject(0, :+)
|
149
|
-
data[u]['Score'] = { total: score
|
149
|
+
data[u]['Score'] = { total: score }
|
150
|
+
end
|
151
|
+
averages = {
|
152
|
+
'HpP': {
|
153
|
+
f: lambda { |ms| ms['HoC'][:total] / ms['Pulls'][:total] },
|
154
|
+
title: 'HoC per Pull'
|
155
|
+
},
|
156
|
+
'HpC': {
|
157
|
+
f: lambda { |ms| ms['HoC'][:total] / ms['Commits'][:total] },
|
158
|
+
title: 'HoC per Commit'
|
159
|
+
}
|
160
|
+
}
|
161
|
+
data.each do |u, ms|
|
162
|
+
averages.each do |k, a|
|
163
|
+
data[u][k] = { total: a[:f].call(ms) }
|
164
|
+
end
|
150
165
|
end
|
151
166
|
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
152
167
|
xml.cobench(time: Time.now, days: opts[:days]) do
|
153
168
|
xml.titles do
|
154
|
-
data.map { |_, ms| ms.keys }.flatten.each do |t|
|
155
|
-
xml.title
|
169
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
170
|
+
xml.title do
|
171
|
+
xml.parent.set_attribute('subtitle', averages[t][:title]) if averages.key?(t)
|
172
|
+
xml.text t
|
173
|
+
end
|
156
174
|
end
|
157
175
|
end
|
158
176
|
xml.weights do
|
159
177
|
weights.each do |t, w|
|
160
178
|
xml.w(id: t) do
|
161
|
-
xml.text
|
179
|
+
xml.text(w)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
xml.totals do
|
184
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
185
|
+
next if t == 'Score'
|
186
|
+
next if averages.key?(t)
|
187
|
+
xml.w(id: t) do
|
188
|
+
xml.text(data.values.map { |ms| ms[t][:total] }.inject(&:+))
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
xml.averages do
|
193
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
194
|
+
next if t == 'Score'
|
195
|
+
xml.w(id: t) do
|
196
|
+
vals = data.values.map { |ms| ms[t][:total] }.select { |v| v > 0 }
|
197
|
+
xml.text(vals.inject(&:+) / vals.count)
|
162
198
|
end
|
163
199
|
end
|
164
200
|
end
|
165
201
|
xml.coders do
|
166
202
|
data.each do |u, ms|
|
167
203
|
xml.coder(id: u) do
|
168
|
-
xml.parent.set_attribute('details', api.user(u).name)
|
204
|
+
xml.parent.set_attribute('details', api.user(u).name) unless opts[:dry]
|
169
205
|
xml.metrics do
|
170
206
|
ms.each do |k, v|
|
171
|
-
xml.m(id: k
|
207
|
+
xml.m(id: k) do
|
172
208
|
xml.parent.set_attribute('actual', v[:actual]) unless v[:actual].nil?
|
173
209
|
xml.parent.set_attribute('href', v[:href]) unless v[:href].nil?
|
174
210
|
xml.text v[:total]
|
data/lib/cobench/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cobench
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|