Grades: can generate XML final grades
This commit is contained in:
parent
37a7bd4b3f
commit
b0b438098c
3 changed files with 122 additions and 81 deletions
|
@ -10,15 +10,19 @@ use lib "..";
|
|||
use ACU::Grading;
|
||||
use ACU::Trace;
|
||||
|
||||
do {
|
||||
my $xmltrace;
|
||||
open $xmltrace, "<", shift or die $!;
|
||||
binmode $xmltrace;
|
||||
my $trace = Trace->new($xmltrace);
|
||||
close $xmltrace unless $xmltrace eq *STDIN;
|
||||
my $grade = Grading->new();
|
||||
|
||||
do {
|
||||
my $xml;
|
||||
open $xml, "<", shift or die $!;
|
||||
binmode $xml;
|
||||
|
||||
my $trace = Trace->new($xml);
|
||||
|
||||
close $xml unless $xml eq *STDIN;
|
||||
|
||||
my $grade = Grading->new();
|
||||
$grade->create_from_trace("rendu_1", "rendu-1", $trace);
|
||||
|
||||
say $grade->to_string();
|
||||
} while ($#ARGV >= 0);
|
||||
|
||||
print $grade->to_string();
|
||||
|
|
|
@ -3,23 +3,21 @@
|
|||
use v5.10.1;
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Basename;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
|
||||
BEGIN {
|
||||
push @INC, "../common";
|
||||
}
|
||||
use Grading;
|
||||
use Trace;
|
||||
use lib "../";
|
||||
use ACU::Grading;
|
||||
use ACU::Log;
|
||||
use ACU::Trace;
|
||||
|
||||
# Parse arguments
|
||||
our $debug;
|
||||
my $input; my $format;
|
||||
my $input; my $format = "csv";
|
||||
my $help; my $man;
|
||||
GetOptions ("help|h|?" => \$help,
|
||||
"man" => \$man,
|
||||
"format|F" => \$format,
|
||||
"debug|d" => \$debug,
|
||||
"format|F=s" => \$format,
|
||||
"" => \$input)
|
||||
or pod2usage(2);
|
||||
pod2usage(1) if $help;
|
||||
|
@ -27,32 +25,39 @@ pod2usage(-exitval => 0, -verbose => 2) if $man;
|
|||
|
||||
|
||||
my $xmlgrading;
|
||||
if ($#ARGV == -1) {
|
||||
pod2usage(1);
|
||||
if (defined $input) {
|
||||
$xmlgrading = *STDIN;
|
||||
}
|
||||
else {
|
||||
open $xmlgrading, "<", shift or die $!;
|
||||
}
|
||||
|
||||
binmode $xmlgrading;
|
||||
my $grade = Grading->new($xmlgrading);
|
||||
close $xmlgrading;
|
||||
close $xmlgrading unless $xmlgrading eq *STDIN;
|
||||
|
||||
my $who = "";
|
||||
while ($#ARGV >= -1)
|
||||
{
|
||||
my $arg = shift // "//";
|
||||
|
||||
do {
|
||||
my $xmltrace;
|
||||
if (defined $input || $#ARGV == -1) {
|
||||
$xmltrace = *STDIN;
|
||||
if ($arg eq "//")
|
||||
{
|
||||
say $who.",".$grade->compute() if ($format eq "csv" or $format eq "CSV");
|
||||
print $grade->computeXML($who) if ($format eq "xml" or $format eq "XML");
|
||||
|
||||
$grade->reset();
|
||||
$who = "";
|
||||
|
||||
last if ($#ARGV == -1);
|
||||
}
|
||||
else {
|
||||
open $xmltrace, "<", shift or die $!;
|
||||
else
|
||||
{
|
||||
open my $xmltrace, "<", $arg or die $!;
|
||||
binmode $xmltrace;
|
||||
my $trace = Trace->new($xmltrace);
|
||||
close $xmltrace;
|
||||
|
||||
$grade->fill($trace->getIds);
|
||||
$who = $trace->getFirstWho() // basename $arg, ".xml", ".trace", ".traces", ".defense", ".defenses", ".mill";
|
||||
}
|
||||
|
||||
binmode $xmltrace;
|
||||
my $trace = Trace->new($xmltrace);
|
||||
close $xmltrace unless $xmltrace eq *STDIN;
|
||||
|
||||
$grade->fill($trace->getIds);
|
||||
|
||||
say $trace->getFirstWho().",".$grade->compute();
|
||||
} while ($#ARGV >= 0);
|
||||
}
|
||||
|
|
Reference in a new issue