1 package DBIx::Data::Store::CRUD;
4 use Method::Signatures::Simple;
6 has raw_store => (is => 'ro', required => 1); # DBIx::Data::Store object
8 foreach my $type (qw(select insert update delete)) {
9 has "${type}_sql" => (is => 'ro', predicate => "has_${type}_sql");
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);
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);
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);
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);
32 __PACKAGE__->meta->make_immutable;