File Coverage

blib/lib/Net/FTPTurboSync/RemoteFile.pm
Criterion Covered Total %
statement 9 31 29.0
branch 0 10 0.0
condition 0 9 0.0
subroutine 3 7 42.8
pod 0 4 0.0
total 12 61 19.6


line stmt bran cond sub pod time code
1             package Net::FTPTurboSync::RemoteFile;
2              
3 1     1   5 use Net::FTPTurboSync::FileLeaf;
  1         1  
  1         21  
4 1     1   4 use Net::FTPTurboSync::MixRemote;
  1         1  
  1         18  
5              
6 1     1   4 use base qw(Net::FTPTurboSync::FileLeaf Net::FTPTurboSync::MixRemote);
  1         1  
  1         406  
7              
8             sub deleteRemoteObjAndCheck {
9 0     0 0   my ( $self, $path, $ftp ) = @_;
10 0 0         return $ftp->delete ( $path ) or ! $ftp->size( $path );
11             }
12             #load info about remote file from db
13             # remote file already exists
14             sub instantiateObject {
15 0     0 0   my ( $class, $path, $info ) = @_ ;
16 0           return $class->new ( $path,
17             $info->{perms},
18             $info->{date},
19             $info->{size} );
20             }
21              
22             sub writeToDb {
23 0     0 0   my ( $self, $localf ) = @_;
24 0 0         if ( $self->isNew ){
25 0           $self->{_new}=0;
26 0           $self->setPath ( $localf->getPath );
27             #insert db
28 0           $self->{dbh}->uploadFile ( $self->getPath,
29             $self->getPerms,
30             $self->getModDate,
31             $self->getSize );
32             }else {
33             # update db
34 0           $self->{dbh}->reuploadFile ( $self->getPath,
35             $self->getPerms,
36             $self->getModDate,
37             $self->getSize );
38             }
39             }
40             sub set {
41 0     0 0   my ( $self, $localf ) = @_;
42 0 0 0       if ( $self->isNew
      0        
43             or $self->getSize != $localf->getSize
44             or $self->getModDate < $localf->getModDate ) {
45 0           my $p = $localf->getPath;
46 0           my $res = $self->{ftp}->put( $p, $p );
47 0 0 0       if ( !defined( $res ) or ($res ne $p) ){
48 0           NetWorkEx->throw ( "Could not put '" . $localf->getPath . "' file" );
49             }
50 0           $self->setSize ( $localf->getSize );
51 0           $self->setModDate ( $localf->getModDate() );
52             }
53            
54 0 0         if ( $self->getPerms != $localf->getPerms ){
55 0           $self->{ftp}->setPerms ( $localf->getPath, $localf->getPerms );
56 0           $self->setPerms ( $localf->getPerms );
57             }
58 0           $self->writeToDb ( $localf );
59             }
60              
61             1;