Blame lib/Lufi/DB/Slice/SQLite.pm
|
Luc Didry |
91e078 |
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
|
Luc Didry |
d909b8 |
package Lufi::DB::Slice::SQLite;
|
|
Luc Didry |
d909b8 |
use Mojo::Base 'Lufi::DB::Slice';
|
|
Luc Didry |
d909b8 |
use Lufi::DB::SQLite;
|
|
Luc Didry |
d909b8 |
use Mojo::Collection 'c';
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
has 'record';
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
sub new {
|
|
Luc Didry |
91e078 |
my $c = shift;
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
$c = $c->SUPER::new(@_);
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
$c = $c->_slurp if defined $c->record;
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
return $c;
|
|
Luc Didry |
91e078 |
}
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
sub write {
|
|
Luc Didry |
91e078 |
my $c = shift;
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
if (defined $c->record) {
|
|
Luc Didry |
91e078 |
$c->record->update(
|
|
Luc Didry |
91e078 |
short => $c->short,
|
|
Luc Didry |
91e078 |
j => $c->j,
|
|
Luc Didry |
91e078 |
path => $c->path
|
|
Luc Didry |
91e078 |
);
|
|
Luc Didry |
91e078 |
} else {
|
|
Luc Didry |
d909b8 |
my $record = Lufi::DB::SQLite::Slices->create(
|
|
Luc Didry |
91e078 |
short => $c->short,
|
|
Luc Didry |
91e078 |
j => $c->j,
|
|
Luc Didry |
91e078 |
path => $c->path
|
|
Luc Didry |
91e078 |
);
|
|
Luc Didry |
91e078 |
$c->record($record);
|
|
Luc Didry |
91e078 |
}
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
return $c;
|
|
Luc Didry |
91e078 |
}
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
d909b8 |
sub get_slices_of_file {
|
|
Luc Didry |
d909b8 |
my $c = shift;
|
|
Luc Didry |
d909b8 |
my $short = shift;
|
|
Luc Didry |
d909b8 |
|
|
Luc Didry |
d909b8 |
my @slices = Lufi::DB::SQLite::Slices->select('WHERE short = ? ORDER BY j ASC', $short);
|
|
Luc Didry |
d909b8 |
|
|
Luc Didry |
d909b8 |
return c(map { Lufi::DB::Slice->new(app => $c->app, record => $_) } @slices);
|
|
Luc Didry |
d909b8 |
}
|
|
Luc Didry |
d909b8 |
|
|
Luc Didry |
91e078 |
sub _slurp {
|
|
Luc Didry |
91e078 |
my $c = shift;
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
$c->short($c->record->short) if defined $c->record->short;
|
|
Luc Didry |
91e078 |
$c->j($c->record->j) if defined $c->record->j;
|
|
Luc Didry |
91e078 |
$c->path($c->record->path) if defined $c->record->path;
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
return $c;
|
|
Luc Didry |
91e078 |
}
|
|
Luc Didry |
91e078 |
|
|
Luc Didry |
91e078 |
1;
|