cobench 0.0.22 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/index.xsl +58 -15
- data/bin/cobench +44 -3
- 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: 8d819cbcfb4db70f384f27e82168b629ff4d5b1da9846edcbde2f2ebea965f86
|
4
|
+
data.tar.gz: 8fd71ec9c615bc21e6b33c6ee2b1b30d3e45f6e5c6ca3bcf64b04051861253d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebd6470d05c7883710c2d0b8197e559a9d2fb9c250b290ce6b7ba474b5363d129e67ae8a147f743324f6252d4d3d302e1acf4240cce5f2dbaca6d4397fe78b0d
|
7
|
+
data.tar.gz: c0675ef02071fb68f066e61c66184fcc4010685ce442b1345b7c9a16a40f9f187bc23428a689a4a41252dd2493df806d5eb782147c11c2c9fc1410537392f3af
|
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>
|
@@ -153,18 +172,42 @@ SOFTWARE.
|
|
153
172
|
</html>
|
154
173
|
</xsl:template>
|
155
174
|
<xsl:template match="cobench/titles">
|
156
|
-
<
|
157
|
-
<
|
158
|
-
|
159
|
-
|
160
|
-
<xsl:
|
161
|
-
|
162
|
-
<
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
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>
|
168
211
|
</xsl:template>
|
169
212
|
<xsl:template match="cobench/coders">
|
170
213
|
<tbody>
|
@@ -211,11 +254,11 @@ SOFTWARE.
|
|
211
254
|
<xsl:choose>
|
212
255
|
<xsl:when test="@actual">
|
213
256
|
<span class="firebrick">
|
214
|
-
<xsl:
|
257
|
+
<xsl:copy-of select="$body"/>
|
215
258
|
</span>
|
216
259
|
</xsl:when>
|
217
260
|
<xsl:otherwise>
|
218
|
-
<xsl:
|
261
|
+
<xsl:copy-of select="$body"/>
|
219
262
|
</xsl:otherwise>
|
220
263
|
</xsl:choose>
|
221
264
|
<xsl:if test="@actual">
|
data/bin/cobench
CHANGED
@@ -74,6 +74,11 @@ end
|
|
74
74
|
Encoding.default_external = Encoding::UTF_8
|
75
75
|
Encoding.default_internal = Encoding::UTF_8
|
76
76
|
|
77
|
+
def div(a, b)
|
78
|
+
return 0 if b == 0
|
79
|
+
a / b
|
80
|
+
end
|
81
|
+
|
77
82
|
def build_xml(opts, loog)
|
78
83
|
if opts.token?
|
79
84
|
api = Octokit::Client.new(:access_token => opts[:token])
|
@@ -121,7 +126,7 @@ def build_xml(opts, loog)
|
|
121
126
|
end
|
122
127
|
end
|
123
128
|
caps = {
|
124
|
-
'HoC' => lambda { |ms| ms['
|
129
|
+
'HoC' => lambda { |ms| ms['Pulls'][:total] * 1024 },
|
125
130
|
}
|
126
131
|
data.each do |u, ms|
|
127
132
|
ms.map do |t, h|
|
@@ -148,17 +153,53 @@ def build_xml(opts, loog)
|
|
148
153
|
end.inject(0, :+)
|
149
154
|
data[u]['Score'] = { total: score }
|
150
155
|
end
|
156
|
+
averages = {
|
157
|
+
'HpP': {
|
158
|
+
f: lambda { |ms| div(ms['HoC'][:total], ms['Pulls'][:total]) },
|
159
|
+
title: 'HoC per Pull'
|
160
|
+
},
|
161
|
+
'HpC': {
|
162
|
+
f: lambda { |ms| div(ms['HoC'][:total], ms['Commits'][:total]) },
|
163
|
+
title: 'HoC per Commit'
|
164
|
+
}
|
165
|
+
}
|
166
|
+
data.each do |u, ms|
|
167
|
+
averages.each do |k, a|
|
168
|
+
data[u][k] = { total: a[:f].call(ms) }
|
169
|
+
end
|
170
|
+
end
|
151
171
|
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
152
172
|
xml.cobench(time: Time.now, days: opts[:days]) do
|
153
173
|
xml.titles do
|
154
174
|
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
155
|
-
xml.title
|
175
|
+
xml.title do
|
176
|
+
xml.parent.set_attribute('subtitle', averages[t][:title]) if averages.key?(t)
|
177
|
+
xml.text t
|
178
|
+
end
|
156
179
|
end
|
157
180
|
end
|
158
181
|
xml.weights do
|
159
182
|
weights.each do |t, w|
|
160
183
|
xml.w(id: t) do
|
161
|
-
xml.text
|
184
|
+
xml.text(w)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
xml.totals do
|
189
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
190
|
+
next if t == 'Score'
|
191
|
+
next if averages.key?(t)
|
192
|
+
xml.w(id: t) do
|
193
|
+
xml.text(data.values.map { |ms| ms[t][:total] }.inject(&:+))
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
xml.averages do
|
198
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
199
|
+
next if t == 'Score'
|
200
|
+
xml.w(id: t) do
|
201
|
+
vals = data.values.map { |ms| ms[t][:total] }.select { |v| v > 0 }
|
202
|
+
xml.text(div(vals.inject(&:+), vals.count))
|
162
203
|
end
|
163
204
|
end
|
164
205
|
end
|
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.25
|
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
|