Data-Model
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Data/Model.pm view on Meta::CPAN
my($self, $row) = @_;
my $class = ref($row);
return unless $class;
my($klass, $model) = $class =~ /^(.+)::([^:]+)$/;
return unless (ref($self) || $self) eq $klass;
return $self->get_schema($model);
}
sub update {
my $self = shift;
Carp::croak "The 'update' method can not be performed during a transaction." if $self->{active_transaction};
my $row = shift;
return $self->update_direct($row, @_) unless ref($row) && $row->isa('Data::Model::Row');
my $schema = $self->_get_schema_by_row($row);
return unless $schema;
return unless @{ $schema->{key} } > 0; # not has key
return unless scalar(%{ $row->get_changed_columns });
lib/Data/Model/Driver/Cache.pm view on Meta::CPAN
sub fallback { shift->{fallback} }
sub cache { shift->{cache} }
sub _as_sql_hook {
my $self = shift;
$self->{fallback}->_as_sql_hook(@_);
}
sub add_to_cache { Carp::croak("NOT IMPLEMENTED") }
sub update_cache { Carp::croak("NOT IMPLEMENTED") }
sub remove_from_cache { Carp::croak("NOT IMPLEMENTED") }
sub get_from_cache { Carp::croak("NOT IMPLEMENTED") }
sub get_multi_from_cache {
my($self, $keys) = @_;
my %got;
while (my($key, $id) = each %{ $keys }) {
my $obj = $self->get_from_cache($id->[1]) or next;
$got{$key} = $obj;
lib/Data/Model/Driver/DBI.pm view on Meta::CPAN
my @ret = $sth->rows;
undef $sth;
return @ret;
} else {
my $ret = $sth->rows;
undef $sth;
return $ret;
}
}
sub update {
my($self, $schema, $old_key, $key, $old_columns, $columns, $changed_columns, %args) = @_;
my $stmt = Data::Model::SQL->new;
$self->add_key_to_where($stmt, $schema->key, $old_key);
my $where_sql = $stmt->as_sql_where;
return unless $where_sql;
return $self->_update($schema, $changed_columns, $columns, $where_sql, $stmt->bind, $stmt->bind_column);
}
sub update_direct {
my($self, $schema, $key, $query, $columns, %args) = @_;
my $index_query = delete $query->{index};
my $stmt = Data::Model::SQL->new(%{ $query });
$self->add_key_to_where($stmt, $schema->key, $key) if $key;
$self->add_index_to_where($schema, $stmt, $index_query) if $index_query;
my $where_sql = $stmt->as_sql_where;
return unless $where_sql;
lib/Data/Model/Driver/Memcached.pm view on Meta::CPAN
package Data::Model::Driver::Memcached;
use strict;
use warnings;
use base 'Data::Model::Driver';
use Carp ();
$Carp::Internal{(__PACKAGE__)}++;
sub memcached { shift->{memcached} }
sub update_direct { Carp::croak("update_direct is NOT IMPLEMENTED") }
sub init {
my $self = shift;
if (my $serializer = $self->{serializer}) {
$serializer = 'Data::Model::Driver::Memcached::Serializer::' . $serializer
unless $serializer =~ s/^\+//;
unless ($serializer eq 'Data::Model::Driver::Memcached::Serializer::Default') {
eval "use $serializer"; ## no critic
Carp::croak $@;
}
t/lib/Mock/Logic/Simple.pm view on Meta::CPAN
$obj->{name} = 'Osawa' if $key->[0] eq 'yappo';
$obj->{name} = 'Danjou' if $key->[0] eq 'lopnor';
$obj;
}
sub set_user {
my($self, $schema, $key, $columns, %args) = @_;
$columns;
}
sub update_user {}
sub delete_user {
my($self, $schema, $key, $columns, %args) = @_;
$key->[0] eq 'ok' ? 1 : 0;
}
install_model barerow => schema {
driver $logic;
key 'id';
columns qw/ id name /;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.547 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )