cobench 0.0.25 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d819cbcfb4db70f384f27e82168b629ff4d5b1da9846edcbde2f2ebea965f86
4
- data.tar.gz: 8fd71ec9c615bc21e6b33c6ee2b1b30d3e45f6e5c6ca3bcf64b04051861253d2
3
+ metadata.gz: 59a9eeca7f5fcb377fcd74fd3d61dba8e2e3a8f9d28b456a5395ae6bab04781c
4
+ data.tar.gz: 4a1437f4564485167e80c14e66bbfe525529a8ee19738e6ebbea65d614de3de1
5
5
  SHA512:
6
- metadata.gz: ebd6470d05c7883710c2d0b8197e559a9d2fb9c250b290ce6b7ba474b5363d129e67ae8a147f743324f6252d4d3d302e1acf4240cce5f2dbaca6d4397fe78b0d
7
- data.tar.gz: c0675ef02071fb68f066e61c66184fcc4010685ce442b1345b7c9a16a40f9f187bc23428a689a4a41252dd2493df806d5eb782147c11c2c9fc1410537392f3af
6
+ metadata.gz: 9a9050e83ed1b3dfb922f8664c1623b3aa6b4cb61bc659dfb49372023072cf6ec2d3d944a6a23990278afb8c87d551415b003277a2bb0c5e2846c1bfab6cc91b
7
+ data.tar.gz: d0298ae4bd39ac293a2dfd91d745546143778211c93e56f28f1bc8975661d78d3fd68d10a8e981eca8bc80bb50c7747d2f60caf73e1855c311f348bd0b649c5a
data/assets/index.xsl CHANGED
@@ -23,9 +23,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
23
  SOFTWARE.
24
24
  -->
25
25
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
26
- <xsl:output encoding="UTF-8" method="html"/>
26
+ <xsl:output encoding="UTF-8" method="xml"/>
27
27
  <xsl:param name="version"/>
28
- <xsl:key name="titles" match="/cobench/titles/title" use="."/>
29
28
  <xsl:template match="/">
30
29
  <html>
31
30
  <head>
@@ -47,9 +46,10 @@ SOFTWARE.
47
46
  td, th { font-family: monospace; font-size: 18px; }
48
47
  .num { text-align: right; }
49
48
  .left { border-bottom: 0; }
49
+ section { width: 100%; }
50
50
  header { text-align: center; }
51
51
  footer { text-align: center; font-size: 0.8em; line-height: 1.2em; color: gray; }
52
- article { width: 60em; border: 0; }
52
+ article { border: 0; }
53
53
  td.avatar { vertical-align: middle; text-align: center; }
54
54
  td.avatar img { width: 1.5em; height: 1.5em; vertical-align: middle; }
55
55
  .subtitle { font-size: 0.8em; line-height: 1em; color: gray; }
@@ -67,6 +67,14 @@ SOFTWARE.
67
67
  </header>
68
68
  <article>
69
69
  <table id="metrics">
70
+ <colgroup>
71
+ <col/>
72
+ <col/>
73
+ <xsl:for-each select="cobench/titles/title">
74
+ <xsl:sort select="."/>
75
+ <col/>
76
+ </xsl:for-each>
77
+ </colgroup>
70
78
  <thead>
71
79
  <xsl:apply-templates select="cobench/titles"/>
72
80
  </thead>
@@ -173,9 +181,8 @@ SOFTWARE.
173
181
  </xsl:template>
174
182
  <xsl:template match="cobench/titles">
175
183
  <tr>
176
- <th/>
177
- <th/>
178
- <xsl:for-each select="title[generate-id() = generate-id(key('titles', .)[1])]">
184
+ <th colspan="2"/>
185
+ <xsl:for-each select="title">
179
186
  <xsl:sort select="."/>
180
187
  <th class="sorter num">
181
188
  <xsl:value-of select="."/>
@@ -187,7 +194,7 @@ SOFTWARE.
187
194
  <xsl:variable name="totals" select="."/>
188
195
  <tr>
189
196
  <td colspan="2" style="text-align:right">Total:</td>
190
- <xsl:for-each select="/cobench/titles/title[generate-id() = generate-id(key('titles', .)[1])]">
197
+ <xsl:for-each select="/cobench/titles/title">
191
198
  <xsl:sort select="."/>
192
199
  <xsl:variable name="t" select="."/>
193
200
  <td class="num">
@@ -200,7 +207,7 @@ SOFTWARE.
200
207
  <xsl:variable name="averages" select="."/>
201
208
  <tr>
202
209
  <td colspan="2" style="text-align:right">Average:</td>
203
- <xsl:for-each select="/cobench/titles/title[generate-id() = generate-id(key('titles', .)[1])]">
210
+ <xsl:for-each select="/cobench/titles/title">
204
211
  <xsl:sort select="."/>
205
212
  <xsl:variable name="t" select="."/>
206
213
  <td class="num">
data/bin/cobench CHANGED
@@ -79,6 +79,11 @@ def div(a, b)
79
79
  a / b
80
80
  end
81
81
 
82
+ def actual(ms)
83
+ return ms[:actual] if ms.key?(:actual)
84
+ ms[:total]
85
+ end
86
+
82
87
  def build_xml(opts, loog)
83
88
  if opts.token?
84
89
  api = Octokit::Client.new(:access_token => opts[:token])
@@ -155,11 +160,11 @@ def build_xml(opts, loog)
155
160
  end
156
161
  averages = {
157
162
  'HpP': {
158
- f: lambda { |ms| div(ms['HoC'][:total], ms['Pulls'][:total]) },
163
+ f: lambda { |ms| div(actual(ms['HoC']), actual(ms['Pulls'])) },
159
164
  title: 'HoC per Pull'
160
165
  },
161
166
  'HpC': {
162
- f: lambda { |ms| div(ms['HoC'][:total], ms['Commits'][:total]) },
167
+ f: lambda { |ms| div(actual(ms['HoC']), actual(ms['Commits'])) },
163
168
  title: 'HoC per Commit'
164
169
  }
165
170
  }
@@ -190,7 +195,7 @@ def build_xml(opts, loog)
190
195
  next if t == 'Score'
191
196
  next if averages.key?(t)
192
197
  xml.w(id: t) do
193
- xml.text(data.values.map { |ms| ms[t][:total] }.inject(&:+))
198
+ xml.text(data.values.map { |ms| actual(ms[t]) }.inject(&:+))
194
199
  end
195
200
  end
196
201
  end
@@ -198,7 +203,7 @@ def build_xml(opts, loog)
198
203
  data.map { |_, ms| ms.keys }.flatten.uniq.each do |t|
199
204
  next if t == 'Score'
200
205
  xml.w(id: t) do
201
- vals = data.values.map { |ms| ms[t][:total] }.select { |v| v > 0 }
206
+ vals = data.values.map { |ms| actual(ms[t]) }.select { |v| v > 0 }
202
207
  xml.text(div(vals.inject(&:+), vals.count))
203
208
  end
204
209
  end
@@ -23,5 +23,5 @@
23
23
  # Copyright:: Copyright (c) 2022 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module Cobench
26
- VERSION = '0.0.25'.freeze
26
+ VERSION = '0.0.28'.freeze
27
27
  end
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.25
4
+ version: 0.0.28
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-09-01 00:00:00.000000000 Z
11
+ date: 2022-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace