Skip to content

Commit 0ef6d11

Browse files
committed
Merge pull request #5 from softmoth/combine-eval-names
Combine eval names sharing prefix & rev
2 parents 2e98e16 + 1a8a83e commit 0ef6d11

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

evalbot.pl

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,30 @@ package Evalbot;
188188
}
189189
# warn "Regex: ", $regex, "\n";
190190

191+
sub format_names {
192+
my ($names) = @_;
193+
# Goal: rakudo-{jvm,moar} abcde, rakudo-parrot xyzzy, foo-other
194+
my %by_rev;
195+
foreach (@$names) {
196+
my ($name, $rev) = @$_;
197+
my ($prefix, $suffix) = ($name, '');
198+
$name =~ /^(.+?-)(.+)$/
199+
and ($prefix, $suffix) = ($1, $2);
200+
push @{$by_rev{$rev}{$prefix}}, $suffix;
201+
}
202+
my @combined;
203+
foreach my $r (sort keys %by_rev) {
204+
foreach $p (sort keys %{$by_rev{$r}}) {
205+
my $s = $by_rev{$r}{$p};
206+
$s = @$s > 1
207+
? '{' . join(',', @$s) . '}'
208+
: $s->[0];
209+
push @combined, $p . $s . ($r ? " $r" : '');
210+
}
211+
}
212+
return join(', ', @combined);
213+
}
214+
191215
sub said {
192216
my $self = shift;
193217
my $info = shift;
@@ -210,13 +234,13 @@ package Evalbot;
210234
$tmp_res =~ s|/tmp/\w{10}|/tmp/tmpfile|g;
211235
my $revision = '';
212236
if (reftype($e) eq 'HASH' && $e->{revision}){
213-
$revision = ' ' . $e->{revision}->();
237+
$revision = $e->{revision}->();
214238
}
215-
push @{$results{$tmp_res}}, "$eval_name$revision";
239+
push @{$results{$tmp_res}}, [$eval_name, $revision];
216240
}
217241
my $result = '';
218242
while (my ($text, $names) = each %results){
219-
$result .= format_output(join(', ', @$names), $text);
243+
$result .= format_output(format_names($names), $text);
220244
}
221245
return $result;
222246
}

0 commit comments

Comments
 (0)