DBIx-DR
view release on metacpan or search on metacpan
lib/DBIx/DR/Iterator.pm view on Meta::CPAN
use utf8;
use strict;
use warnings;
package DBIx::DR::Iterator;
use Scalar::Util qw(blessed weaken);
use DBIx::DR::Util;
use Carp;
# Perl 5.18 refuses smartmatch
my $is = sub($$) {
my ($v1, $v2) = @_;
return 0 if defined($v1) xor defined($v2);
return 1 unless defined $v1;
return $v1 eq $v2;
lib/DBIx/DR/Iterator.pm view on Meta::CPAN
return $self->{$method};
}
sub new {
my ($class, $object, $iterator) = @_;
return unless defined $object;
Carp::croak "Usage: DBIx::DR::Iterator::Item->new(HASHREF [, iterator ])"
unless 'HASH' eq ref $object;
my $self = bless $object => ref($class) || $class;
$self->{iterator} = $iterator;
Scalar::Util::weaken($self->{iterator});
$self->{is_changed} = 0;
return $self;
}
sub is_changed {
my ($self, $value) = @_;
if (@_ > 1) {{
$self->{is_changed} = $value ? 1 : 0;
last unless $self->{is_changed};
lib/DBIx/DR/Iterator.pm view on Meta::CPAN
Constructor. Receives two arguments: B<HASHREF> and link to
L<iterator|DBIx::DR::Iterator>.
my $row = DBIx::DR::Iterator::Item->new({ id => 1 });
$row = DBIx::DR::Iterator::Item->new({ id => 1 }, $iterator); }
=head2 iterator
Returns (or set) iterator object. The link is created by constructor.
This is a L<weaken|Scalar::Util/weaken> link.
=head2 is_changed
Returns (or set) flag if the row has been changed. If You change any of
row's fields the flag will be set. Also iterator's flag will be set.
=head1 COPYRIGHT
Copyright (C) 2011 Dmitry E. Oboukhov <unera@debian.org>
( run in 0.887 second using v1.01-cache-2.11-cpan-65fba6d93b7 )