]> iEval git - plack-app-gruntmaster.git/blobdiff - lib/Gruntmaster/Data.pm
Fix some small bugs
[plack-app-gruntmaster.git] / lib / Gruntmaster / Data.pm
index f9162af3cfda71af69068f1cacbd69e8d727d129..544a6d060613d816a305c5e3ea6700a351523116 100644 (file)
@@ -16,8 +16,8 @@ sub dynsub{
 }
 
 BEGIN {
-       for my $cmd (qw/multi exec smembers get hget hset sadd incr hmset/) {
-               dynsub uc $cmd, sub { say $cmd;exit;$redis->$cmd(@_) };
+       for my $cmd (qw/multi exec smembers get hget hset sadd srem incr hmset hsetnx/) {
+               dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
        }
 }
 
@@ -28,12 +28,16 @@ sub rexec                           ()              { EXEC }
 
 sub problems                   ()              { SMEMBERS cp . 'problem' }
 sub contests                   ()              { SMEMBERS cp . 'contest' }
-sub jobcard                    ()              { GET cp . 'job' }
+sub jobcard                            ()              { GET cp . 'job' }
 
-sub job_results                (_)     { decode_json HGET cp . "job.$_[0]", 'results' }
-sub set_job_results    ($+)    { HSET cp . "job.$_[0]", 'results', encode_json $_[1] }
-sub problem_meta               (_)     { decode_json HGET cp . "pb.$_[0]", 'meta' }
-sub set_problem_meta   ($+)    { HSET cp . "pb.$_[0]", 'meta', encode_json $_[1] }
+sub job_results                        (_)             { decode_json HGET cp . "job.$_[0]", 'results' }
+sub set_job_results            ($+)    { HSET cp . "job.$_[0]", 'results', encode_json $_[1] }
+sub job_inmeta                 (_)             { decode_json HGET cp . "job.$_[0]", 'inmeta' }
+sub set_job_inmeta             ($+)    { HSET cp . "job.$_[0]", 'inmeta', encode_json $_[1] }
+sub problem_meta               (_)             { decode_json HGET cp . "problem.$_[0]", 'meta' }
+sub set_problem_meta   ($+)    { HSET cp . "problem.$_[0]", 'meta', encode_json $_[1] }
+sub job_daemon                 (_)             { HGET cp . "job.$_[0]", 'daemon' }
+sub set_job_daemon             ($$)    { HSETNX cp . "job.$_[0]", 'daemon', $_[1] };
 
 sub defhash{
        my ($name, @keys) = @_;
@@ -47,6 +51,11 @@ sub defhash{
                SADD cp . $name, $key or return;
                HMSET cp . "$name.$key", %values;
        };
+       dynsub "remove_$name", sub (_) {
+               my $key = shift;
+               SREM cp . $name, $key;
+       };
+
        dynsub "push_$name", sub {
                my $nr = INCR cp . $name;
                HMSET cp . "$name.$nr", @_;
@@ -59,7 +68,7 @@ defhash job => qw/date file name private problem result result_text user/;
 
 our @EXPORT_OK = do {
        no strict 'refs';
-       grep { $_ =~ /^[a-z]/ and exists &$_ } keys %{__PACKAGE__ . '::'};
+       grep { $_ =~ /^[a-zA-Z]/ and exists &$_ } keys %{__PACKAGE__ . '::'};
 };
 
 1
This page took 0.025374 seconds and 4 git commands to generate.