X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FData.pm;h=457f12b93b32d2c68ec9b880ba889c160b085946;hb=4af36c88e2defa6b15cb7a086b4e9bd2866ddd03;hp=e8dfbd989a2b84e513e914bb08ded7013d7ae6ca;hpb=9d2e740ea7b511b8673cd1b241922e559733f12e;p=gruntmaster-data.git diff --git a/lib/Gruntmaster/Data.pm b/lib/Gruntmaster/Data.pm index e8dfbd9..457f12b 100644 --- a/lib/Gruntmaster/Data.pm +++ b/lib/Gruntmaster/Data.pm @@ -15,7 +15,7 @@ __PACKAGE__->load_namespaces; # Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-05 13:11:39 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dAEmtAexvUaNXLgYz2rNEg -our $VERSION = 5999.000_003; +our $VERSION = '5999.000_004'; use Lingua::EN::Inflect qw/PL_N/; use Sub::Name qw/subname/; @@ -48,11 +48,76 @@ Gruntmaster::Data - Gruntmaster 6000 Online Judge -- database interface and tool =head1 SYNOPSIS my $db = Gruntmaster::Data->connect('dbi:Pg:'); - # Typical DBIC stuff here + + my $problem = $db->problem('my_problem'); + $problem->update({timeout => 2.5}); # Set time limit to 2.5 seconds + $problem->rerun; # And rerun all jobs for this problem + + # ... + + my $contest = $db->contests->create({ # Create a new contest + id => 'my_contest', + name => 'My Awesome Contest', + start => time + 100, + end => time + 1900, + }); + $db->contest_problems->create({ # Add a problem to the contest + contest => 'my_contest', + problem => 'my_problem', + }); + + say 'The contest has not started yet' if $contest->is_pending; + + # ... + + my @jobs = $db->jobs->search({contest => 'my_contest', owner => 'MGV'})->all; + $_->rerun for @jobs; # Rerun all jobs sent by MGV in my_contest =head1 DESCRIPTION -No documentation (yet) +Gruntmaster::Data is the interface to the Gruntmaster 6000 database. Read the L documentation for usage information. + +In addition to the typical DBIx::Class::Schema methods, this module contains several convenience methods: + +=over + +=item contests + +Equivalent to C<< $schema->resultset('Contest') >> + +=item contest_problems + +Equivalent to C<< $schema->resultset('ContestProblem') >> + +=item jobs + +Equivalent to C<< $schema->resultset('Job') >> + +=item problems + +Equivalent to C<< $schema->resultset('Problem') >> + +=item users + +Equivalent to C<< $schema->resultset('User') >> + +=item contest($id) + +Equivalent to C<< $schema->resultset('Contest')->find($id) >> + +=item job($id) + +Equivalent to C<< $schema->resultset('Job')->find($id) >> + +=item problem($id) + +Equivalent to C<< $schema->resultset('Problem')->find($id) >> + +=item user($id) + +Equivalent to C<< $schema->resultset('User')->find($id) >> + +=back =head1 AUTHOR