f6d4d3f0ba7d04e44b1f82e7eef17d6ced5e7a4c
[dbsrgits/DBIx-Data-Store-old.git] / lib / DBIx / Data / Store / CRUD.pm
1 package DBIx::Data::Store::CRUD;
2
3 use Moose;
4 use Method::Signatures::Simple;
5
6 has raw_store => (is => 'ro', required => 1); # DBIx::Data::Store object
7
8 foreach my $type (qw(select insert update delete)) {
9   has "${type}_sql" => (is => 'ro', predicate => "has_${type}_sql");
10 }
11
12 method new_select_command ($args) {
13   die "$self->has_select_sql" unless $self->has_select_sql;
14   $self->raw_store->new_stream_command($self->select_sql, $args);
15 }
16
17 method new_insert_command ($args) {
18   die "$self->has_insert_sql" unless $self->has_insert_sql;
19   $self->raw_store->new_call_command($self->insert_sql, $args);
20 }
21
22 method new_update_command ($args) {
23   die "$self->has_update_sql" unless $self->has_update_sql;
24   $self->raw_store->new_call_command($self->update_sql, $args);
25 }
26
27 method new_delete_command ($args) {
28   die "$self->has_delete_sql" unless $self->has_delete_sql;
29   $self->raw_store->new_call_command($self->delete_sql, $args);
30 }
31
32 __PACKAGE__->meta->make_immutable;
33
34 1;