lib/BlockDev.pm
branchmoose
changeset 3 7e8df0715112
parent 2 ba9ad363d185
equal deleted inserted replaced
2:ba9ad363d185 3:7e8df0715112
     1 package BlockDev;
     1 package BlockDev;
     2 
     2 
     3 use 5.010;
     3 use 5.010;
     4 use Moose;
     4 use Moose;
       
     5 use POSIX;
     5 use autodie qw(:all);
     6 use autodie qw(:all);
     6 use Cwd qw(abs_path);
     7 use Cwd qw(abs_path);
     7 
     8 
     8 our $VERSION = "0.0";
     9 our $VERSION = "0.0";
     9 
    10 
    62 }
    63 }
    63 
    64 
    64 sub path  { abs_path shift->dev }
    65 sub path  { abs_path shift->dev }
    65 sub major { (stat shift->dev)[6] >> 8 }
    66 sub major { (stat shift->dev)[6] >> 8 }
    66 sub minor { (stat shift->dev)[6] & 0xff }
    67 sub minor { (stat shift->dev)[6] & 0xff }
       
    68 sub size  {
       
    69     my $self = shift;
       
    70     open(my $fh => $self->path);
       
    71     seek($fh, 0, SEEK_END);
       
    72     return tell($fh);
       
    73 }
    67 
    74 
    68 sub mami {
       
    69     my $self = shift;
       
    70     return ($self->major, $self->minor) if wantarray;
       
    71     return join " " => $self->major, $self->minor;
       
    72 }
       
    73 
    75 
    74 1;
    76 1;
    75 __END__
    77 __END__
    76 
    78 
    77 sub new : Validate(uuid => 0, dev => 0) : method {
    79 sub new : Validate(uuid => 0, dev => 0) : method {