Showing 4 changed files with 21 additions and 25 deletions
+3
Changes
... ...
@@ -1,3 +1,6 @@
1
+0.1640
2
+  removed experimental DBIx::Custom::Table base() method
3
+  table created by tabled method can call base_$method correponding to base_table's one
1 4
 0.1641
2 5
   select() where can't receive array reference to prevend SQL injection easily(not backward compatible. sorry. use where() instead)
3 6
   added experimental safety_column_name attribute
+4 -3
lib/DBIx/Custom.pm
... ...
@@ -1,6 +1,6 @@
1 1
 package DBIx::Custom;
2 2
 
3
-our $VERSION = '0.1641';
3
+our $VERSION = '0.1642';
4 4
 
5 5
 use 5.008001;
6 6
 use strict;
... ...
@@ -590,14 +590,15 @@ sub table {
590 590
         # Copy Methods
591 591
         my $methods = {};
592 592
         $methods->{$_} = $bmethods->{$_} for keys %$bmethods;
593
+        $methods->{"base_$_"} = $bmethods->{$_} for keys %$bmethods;
593 594
         
594 595
         # Create table
595 596
         my $table = $base_table->new(
596 597
             dbi      => $self,
597 598
             name     => $name,
598
-            base     => $base_table,
599
-            _methods => $methods
600 599
         );
600
+        $table->method($methods);
601
+        
601 602
         $self->{_tables}->{$name} = $table;
602 603
     }
603 604
     
+1 -1
lib/DBIx/Custom/Table.pm
... ...
@@ -10,7 +10,7 @@ use Carp 'croak';
10 10
 # Carp trust relationship
11 11
 push @DBIx::Custom::CARP_NOT, __PACKAGE__;
12 12
 
13
-__PACKAGE__->attr(['dbi', 'name', 'base']);
13
+__PACKAGE__->attr(['dbi', 'name']);
14 14
 
15 15
 our $AUTOLOAD;
16 16
 
+13 -21
t/dbix-custom-core-sqlite.t
... ...
@@ -1245,30 +1245,22 @@ is($result->stash->{foo}, 1, 'get and set');
1245 1245
 test 'base_table';
1246 1246
 $dbi = DBIx::Custom->new;
1247 1247
 $dbi->base_table->method(
1248
-    one => sub { 1 }
1248
+    twice => sub {
1249
+        my $self = shift;
1250
+        
1251
+        return $_[0] * 2;
1252
+    }
1249 1253
 );
1250 1254
 $table = $dbi->table('book');
1251 1255
 $table->method(
1252
-    two => sub { 2 }
1256
+    three_times => sub {
1257
+        my $self = shift;
1258
+        return  $_[0] * 3;
1259
+    }
1253 1260
 );
1254
-is($dbi->base_table->one, 1, 'method');
1255
-is($table->one, 1, 'inherit method');
1256
-is($table->two, 2, 'child table method');
1257
-eval {$dbi->base_table->two};
1261
+is($table->base_twice(1), 2, 'method');
1262
+is($table->twice(1), 2, 'inherit method');
1263
+is($table->three_times(1), 3, 'child table method');
1264
+eval {$dbi->base_two};
1258 1265
 ok($@);
1259 1266
 
1260
-$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
1261
-$dbi->execute($CREATE_TABLE->{0});
1262
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
1263
-$result = $dbi->base_table->execute("select * from table1");
1264
-is_deeply($result->fetch_hash_all, [{key1 => 1, key2 => 2}], 'dbi method from base_table');
1265
-$result = $dbi->table('table1')->execute("select * from table1");
1266
-is_deeply($result->fetch_hash_all, [{key1 => 1, key2 => 2}], 'dbi method from table');
1267
-
1268
-$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
1269
-$dbi->method(
1270
-    one => sub { 1 }
1271
-);
1272
-is($dbi->base_table->one, 1, 'use dbi method');
1273
-is($dbi->table('table1')->one, 1, 'use dbi method');
1274
-