cobench 0.0.23 → 0.0.26
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 +56 -13
- data/bin/cobench +49 -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: 6fbe7145f065a7c65776e187ebe08795e6bf43d96461b47da21bfc33cf241f23
|
4
|
+
data.tar.gz: 4ded5cf401303b0107f08ad06e839fdf17303c4de7aa8c7a35607a8d361d2a4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 230046c4cd9da1cd3efec5720bbc7c8da1829e6eef8c8cf3e54d031f124bec8ae8c9393bacfc52a5c86dccc1dfe9cb7061950eb61d392c96f4191cc512e04552
|
7
|
+
data.tar.gz: 338a370eaaecd73ae8ed886bec1ef9971924012be9e6d87c99881ec85e1954fdd6759bb6625684c38cdf5bb21b2558a4d344e526b3f1e11fdf9344f312ea64a9
|
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>
|
data/bin/cobench
CHANGED
@@ -74,6 +74,16 @@ 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
|
+
|
82
|
+
def actual(ms)
|
83
|
+
return ms[:actual] if ms.key?(:actual)
|
84
|
+
ms[:total]
|
85
|
+
end
|
86
|
+
|
77
87
|
def build_xml(opts, loog)
|
78
88
|
if opts.token?
|
79
89
|
api = Octokit::Client.new(:access_token => opts[:token])
|
@@ -121,7 +131,7 @@ def build_xml(opts, loog)
|
|
121
131
|
end
|
122
132
|
end
|
123
133
|
caps = {
|
124
|
-
'HoC' => lambda { |ms| ms['
|
134
|
+
'HoC' => lambda { |ms| ms['Pulls'][:total] * 1024 },
|
125
135
|
}
|
126
136
|
data.each do |u, ms|
|
127
137
|
ms.map do |t, h|
|
@@ -148,17 +158,53 @@ def build_xml(opts, loog)
|
|
148
158
|
end.inject(0, :+)
|
149
159
|
data[u]['Score'] = { total: score }
|
150
160
|
end
|
161
|
+
averages = {
|
162
|
+
'HpP': {
|
163
|
+
f: lambda { |ms| div(actual(ms['HoC']), actual(ms['Pulls'])) },
|
164
|
+
title: 'HoC per Pull'
|
165
|
+
},
|
166
|
+
'HpC': {
|
167
|
+
f: lambda { |ms| div(actual(ms['HoC']), actual(ms['Commits'])) },
|
168
|
+
title: 'HoC per Commit'
|
169
|
+
}
|
170
|
+
}
|
171
|
+
data.each do |u, ms|
|
172
|
+
averages.each do |k, a|
|
173
|
+
data[u][k] = { total: a[:f].call(ms) }
|
174
|
+
end
|
175
|
+
end
|
151
176
|
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
152
177
|
xml.cobench(time: Time.now, days: opts[:days]) do
|
153
178
|
xml.titles do
|
154
179
|
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
155
|
-
xml.title
|
180
|
+
xml.title do
|
181
|
+
xml.parent.set_attribute('subtitle', averages[t][:title]) if averages.key?(t)
|
182
|
+
xml.text t
|
183
|
+
end
|
156
184
|
end
|
157
185
|
end
|
158
186
|
xml.weights do
|
159
187
|
weights.each do |t, w|
|
160
188
|
xml.w(id: t) do
|
161
|
-
xml.text
|
189
|
+
xml.text(w)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
xml.totals do
|
194
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
195
|
+
next if t == 'Score'
|
196
|
+
next if averages.key?(t)
|
197
|
+
xml.w(id: t) do
|
198
|
+
xml.text(data.values.map { |ms| ms[t][:total] }.inject(&:+))
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
xml.averages do
|
203
|
+
data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
|
204
|
+
next if t == 'Score'
|
205
|
+
xml.w(id: t) do
|
206
|
+
vals = data.values.map { |ms| ms[t][:total] }.select { |v| v > 0 }
|
207
|
+
xml.text(div(vals.inject(&:+), vals.count))
|
162
208
|
end
|
163
209
|
end
|
164
210
|
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.26
|
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-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|