cobench 0.0.23 → 0.0.26
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 +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
|