Apache2-Translation

 view release on metacpan or  search on metacpan

lib/Apache2/Translation.pm  view on Meta::CPAN

   redirect=>sub {
     my ($action, $what)=@_;
     my ($loc, $code)=handle_eval( $what );
     die Apache2::Translation::Error->new( msg=>"Action REDIRECT: location not set" )
       unless( length $loc );
     die Apache2::Translation::Error->new( loc=>$loc, code=>$code||302 );
   },

   call=>sub {
     my ($action, $what)=@_;
     local @ARGV;
     ($what, @ARGV)=handle_eval( $what );
     my @l=$cf->{provider}->fetch( $KEY, $what );
     @l=$cf->{provider}->fetch( '*', $what ) unless( @l );
     process( @l );
     return 1;
   },

   restart=>sub {
     my ($action, $what)=@_;
     if( length $what ) {

t/002provider-File.t  view on Meta::CPAN

				     [1, 0, "e", 6, "k1", "u2"],
				     [1, 1, "f", 5, "k1", "u2"]
				    ],
			"k1\0u1" => [
				     [0, 0, "a", 1, "k1", "u1"],
				     [0, 1, "b", 3, "k1", "u1"],
				     [1, 0, "c", 2, "k1", "u1"]
				    ]
		       }, n 'cache status';

cmp_deeply do {local $/; local @ARGV=($conf); <>}, <<'EOF', n 'written config';
#>>> id key uri blk ord
# action
##################################################################
>>>   1 k1  u1    0   0
a
##################################################################
>>>   3 k1  u1    0   1
b
##################################################################
>>>   2 k1  u1    1   0

t/002provider-File.t  view on Meta::CPAN

		       }, n 'cache reloaded';

cmp_deeply [$o->fetch('k1', 'u1')],
           [['0', '0', 'a', '1'], ['0', '1', 'b', '3'], ['1', '0', 'c', '2']],
           n 'fetch k1 u1';

$o->begin;
$o->update( ["k2", "u1", 0, 0, 100], ["k2", "u1", 1, 2, "b\nccc"] );
$o->commit;

cmp_deeply do {local $/; local @ARGV=($conf); <>}, <<'EOF', n 'config after update';
#>>> id key uri blk ord
# action
##################################################################
>>>   1 k1  u1    0   0
a
##################################################################
>>>   3 k1  u1    0   1
b
##################################################################
>>>   2 k1  u1    1   0

t/002provider-File.t  view on Meta::CPAN


cmp_deeply [$o->fetch('k2', 'u1')],
           [['1', '2', "b\nccc", '100']],
           n 'fetch k2 u1';

$o->begin;
$o->update( ["k2", "u1", 1, 2, 100], ["k1", "u1", 1, 2, "b\nccc"] );
$o->commit;
$o->stop;

cmp_deeply do {local $/; local @ARGV=($conf); <>}, <<'EOF', n 'config after update';
#>>> id key uri blk ord
# action
##################################################################
>>>   1 k1  u1    0   0
a
##################################################################
>>>   3 k1  u1    0   1
b
##################################################################
>>>   2 k1  u1    1   0

t/002provider-File.t  view on Meta::CPAN

cmp_deeply [$o->fetch( qw/k1 u1 1/ )], [
					[0, 0, "a", 1, undef],
					[0, 1, "b", 3, 'note on 3'],
					[1, 0, "c", 2, undef],
					[1, 1, "c", 90, undef]
				       ], n 'fetch with_notes';
$o->begin;
$o->update( ["k1", "u1", 1, 1, 90], ["k2", "u1", 1, 2, "bccc", 'note on 90'] );
$o->commit;

cmp_deeply do{local $/; local @ARGV=(t_catfile($conf_notes, '90')); <>.''},
           'note on 90', n 'note on id=90';

my @l=(['k1', 'u1', 0, 0, 'a', undef, 1],
       ['k1', 'u1', 0, 1, 'b', 'note on 3', 3],
       ['k1', 'u1', 1, 0, 'c', undef, 2],
       ['k2', 'u1', 1, 2, 'bccc', 'note on 90', 90]);
my $i=0;
for( my $iterator=$o->iterator; my $el=$iterator->(); $i++ ) {
  cmp_deeply($el, $l[$i], n "iterator $i");
}



( run in 0.845 second using v1.01-cache-2.11-cpan-49f99fa48dc )