Merge branch 'devel' of h1dev:/srv/APKPM/
[APKPM.git] / lib / APKPM / Gearman.pm
1 package APKPM::Gearman;
2
3 use Moose::Role;
4
5 use Data::Dump qw(dump);
6 use JSON::XS;
7
8 use DateTime;
9 use DateTime::Format::Pg;
10
11 use Data::Dumper;
12
13 sub e_json {
14         my ( $self, $result ) = @_;
15         warn "# e_json ", dump $result;
16         return $result unless ref $result; # FIXME report error?
17         return JSON::XS::encode_json($result);
18 }
19
20 sub d_json {
21         my ( $self, $workload ) = @_;
22         warn "# d_json $workload";
23         return JSON::XS::decode_json($workload);
24 }
25
26 sub d_array {
27         my ( $self, $result ) = @_;
28         warn "# d_array $result";
29         return [ split(/\s+/,$result) ];
30
31 }
32
33 sub datetime_now {
34         return DateTime::Format::Pg->format_datetime( DateTime->now );
35 }
36
37 sub to_hstore {
38         my ($self,$hash) = @_;
39
40         warn "# hash ",dump $hash;
41         local $Data::Dumper::Useqq = 1; # double quote for PostgreSQL
42         my $h = Dumper($hash);
43         $h =~ s/\s+/ /gs;
44         $h =~ s/^\$\w+\s*=\s*{\s*//s;
45         $h =~ s/\s*}\s*;\s*$//s;
46
47         return $h;
48 }
49
50 1;