Showing 10 changed files with 166 additions and 195 deletions
+4
Changes
... ...
@@ -1,3 +1,7 @@
1
+0.1604
2
+  removed DESTROY method(not backword compatible)
3
+  removed disconnect method(not backword compatible)
4
+  fixed DBIx::Custom::MySQL connect_memory
1 5
 0.1603
2 6
   removed DBIx::Custom commit method (not backword compatible)
3 7
   removed DBIx::Custom rollback method (not backword compatible)
+76 -100
lib/DBIx/Custom.pm
... ...
@@ -74,15 +74,14 @@ sub connect {
74 74
     return $self;
75 75
 }
76 76
 
77
-sub disconnect {
78
-    my $self = shift;
77
+sub register_filter {
78
+    my $invocant = shift;
79 79
     
80
-    # Disconnect
81
-    my $ret = eval { $self->dbh->disconnect };
82
-    croak $@ if $@;
83
-    $self->dbh(undef);
80
+    # Add filter
81
+    my $filters = ref $_[0] eq 'HASH' ? $_[0] : {@_};
82
+    $invocant->filters({%{$invocant->filters}, %$filters});
84 83
     
85
-    return $ret;
84
+    return $invocant;
86 85
 }
87 86
 
88 87
 our %VALID_INSERT_ARGS = map { $_ => 1 } qw/table param append filter/;
... ...
@@ -110,7 +109,8 @@ sub insert {
110 109
       unless @insert_keys;
111 110
     
112 111
     # Templte for insert
113
-    my $template = "insert into $table {insert " . join(' ', @insert_keys) . '}';
112
+    my $template = "insert into $table {insert "
113
+                   . join(' ', @insert_keys) . '}';
114 114
     $template .= " $append" if $append;
115 115
     
116 116
     # Execute query
... ...
@@ -444,7 +444,8 @@ sub _build_bind_values {
444 444
             }
445 445
             else {
446 446
                 my $filters = $self->filters;
447
-                croak "Not exists filter \"$fname\"" unless exists $filters->{$fname};
447
+                croak "Not exists filter \"$fname\""
448
+                  unless exists $filters->{$fname};
448 449
                 $filter_func = $filters->{$fname};
449 450
             }            
450 451
         }
... ...
@@ -460,44 +461,23 @@ sub _build_bind_values {
460 461
     return \@bind_values;
461 462
 }
462 463
 
463
-sub register_filter {
464
-    my $invocant = shift;
465
-    
466
-    # Add filter
467
-    my $filters = ref $_[0] eq 'HASH' ? $_[0] : {@_};
468
-    $invocant->filters({%{$invocant->filters}, %$filters});
469
-    
470
-    return $invocant;
471
-}
472
-
473
-sub DESTROY {
474
-    my $self = shift;
475
-    
476
-    # Disconnect
477
-    $self->disconnect if $self->dbh;
478
-}
479
-
480 464
 =head1 NAME
481 465
 
482 466
 DBIx::Custom - DBI with hash parameter binding and filtering system
483 467
 
484 468
 =cut
485 469
 
486
-our $VERSION = '0.1603';
470
+our $VERSION = '0.1604';
487 471
 
488 472
 =head1 STABILITY
489 473
 
490
-This module is not stable. Method name and implementations will be change.
474
+This module is not stable. Method name and implementations will be changed.
491 475
 
492 476
 =head1 SYNOPSYS
493 477
     
494 478
     # Connect
495 479
     my $dbi = DBIx::Custom->connect(data_source => "dbi:mysql:database=books",
496 480
                                     user => 'ken', password => '!LFKD%$&');
497
-    
498
-    # Disconnect
499
-    $dbi->disconnect
500
-
501 481
     # Insert 
502 482
     $dbi->insert(table  => 'books',
503 483
                  param  => {title => 'perl', author => 'Ken'},
... ...
@@ -569,7 +549,7 @@ This module is not stable. Method name and implementations will be change.
569 549
         
570 550
     }
571 551
     
572
-    # DBI instance
552
+    # Get DBI object
573 553
     my $dbh = $dbi->dbh;
574 554
 
575 555
 =head1 DESCRIPTION
... ...
@@ -590,11 +570,17 @@ And have useful method such as insert(), update(), delete(), and select().
590 570
 
591 571
 =over 4
592 572
 
593
-=item 1. Hash parameter binding.
573
+=item *
594 574
 
595
-=item 2. Value filtering.
575
+Hash parameter binding.
596 576
 
597
-=item 3. Useful methos such as insert(), update(), delete(), and select().
577
+=item *
578
+
579
+Value filtering.
580
+
581
+=item *
582
+
583
+Provide suger methods, such as insert(), update(), delete(), and select().
598 584
 
599 585
 =back
600 586
 
... ...
@@ -602,82 +588,83 @@ And have useful method such as insert(), update(), delete(), and select().
602 588
 
603 589
 =head2 C<user>
604 590
 
605
-Database user name.
606
-    
607 591
     $dbi  = $dbi->user('Ken');
608 592
     $user = $dbi->user;
593
+
594
+Database user name.
595
+This is used for connect().
609 596
     
610 597
 =head2 C<password>
611 598
 
612
-Database password.
613
-    
614 599
     $dbi      = $dbi->password('lkj&le`@s');
615 600
     $password = $dbi->password;
616 601
 
602
+Database password.
603
+This is used for connect().
604
+
617 605
 =head2 C<data_source>
618 606
 
619
-Database data source.
620
-    
621 607
     $dbi         = $dbi->data_source("dbi:mysql:dbname=$database");
622 608
     $data_source = $dbi->data_source;
623
-    
609
+
610
+Database data source.
611
+This is used for connect().
612
+
624 613
 =head2 C<dbh>
625 614
 
626
-Database handle. This is the innstance of L<DBI>
627
-    
628 615
     $dbi = $dbi->dbh($dbh);
629 616
     $dbh = $dbi->dbh;
630 617
 
631
-You can use all methods of L<DBI>
618
+Database handle. This is a L<DBI> object.
619
+You can call all methods of L<DBI>
632 620
 
633 621
     my $sth    = $dbi->dbh->prepare("...");
634 622
     my $errstr = $dbi->dbh->errstr;
623
+    $dbi->dbh->begin_work;
624
+    $dbi->dbh->commit;
625
+    $dbi->dbh->rollback;
635 626
     
636 627
 =head2 C<filters>
637 628
 
638
-Filters
639
-
640 629
     $dbi     = $dbi->filters({%filters});
641 630
     $filters = $dbi->filters;
642 631
 
643
-encode_utf8 and decode_utf8 is set to this attribute by default.
632
+Filter functions.
633
+By default, "encode_utf8" and "decode_utf8" is registered.
644 634
 
645 635
     $encode_utf8 = $dbi->filters->{encode_utf8};
646 636
     $decode_utf8 = $dbi->filters->{decode_utf8};
647 637
 
648 638
 =head2 C<default_query_filter>
649 639
 
650
-Default query filter.
651
-
652 640
     $dbi                  = $dbi->default_query_filter('encode_utf8');
653 641
     $default_query_filter = $dbi->default_query_filter
654 642
 
655
-=head2 C<default_fetch_filter>
643
+Default filter for value binding
656 644
 
657
-Fetching filter.
645
+=head2 C<default_fetch_filter>
658 646
 
659 647
     $dbi                  = $dbi->default_fetch_filter('decode_utf8');
660 648
     $default_fetch_filter = $dbi->default_fetch_filter;
661 649
 
662
-=head2 C<result_class>
650
+Default filter for fetching.
663 651
 
664
-Result class.
652
+=head2 C<result_class>
665 653
 
666 654
     $dbi          = $dbi->result_class('DBIx::Custom::Result');
667 655
     $result_class = $dbi->result_class;
668 656
 
669
-L<DBIx::Custom::Result> is set to this attribute by default.
657
+Result class for select statement.
658
+Default to L<DBIx::Custom::Result>
670 659
 
671 660
 =head2 C<sql_template>
672 661
 
673
-SQLTemplate instance. sql_template attribute must be 
674
-the instance of L<DBIx::Cutom::SQLTemplate> subclass.
675
-
676 662
     $dbi          = $dbi->sql_template(DBIx::Cutom::SQLTemplate->new);
677 663
     $sql_template = $dbi->sql_template;
678 664
 
679
-the instance of DBIx::Cutom::SQLTemplate is set to 
680
-this attribute by default.
665
+SQLTemplate instance. sql_template attribute must be 
666
+the instance of L<DBIx::Cutom::SQLTemplate> subclass.
667
+Default to DBIx::Cutom::SQLTemplate object
681 668
 
682 669
 =head1 METHODS
683 670
 
... ...
@@ -686,36 +673,25 @@ You can use all methods of L<Object::Simple>
686 673
 
687 674
 =head2 C<connect>
688 675
 
689
-Connect to database.
690
-    
691 676
     my $dbi = DBIx::Custom->connect(data_source => "dbi:mysql:database=books",
692 677
                                     user => 'ken', password => '!LFKD%$&');
693 678
 
679
+Connect to database.
694 680
 "AutoCommit" and "RaiseError" option is true, 
695
-and "PrintError" option is false by dfault.
696
-
697
-=head2 C<disconnect>
698
-
699
-Disconnect database.
700
-
701
-    $dbi->disconnect;
702
-
703
-If database is already disconnected, this method do nothing.
681
+and "PrintError" option is false by default.
704 682
 
705 683
 =head2 C<insert>
706 684
 
707
-Insert row.
708
-
709 685
     $affected = $dbi->insert(table  => $table, 
710 686
                              param  => {%param},
711 687
                              append => $append,
712 688
                              filter => {%filter});
713 689
 
714
-Retruned value is affected rows count.
690
+Insert row.
691
+Retrun value is the count of affected rows.
715 692
     
716
-Example:
693
+B<Example:>
717 694
 
718
-    # insert
719 695
     $dbi->insert(table  => 'books', 
720 696
                  param  => {title => 'Perl', author => 'Taro'},
721 697
                  append => "some statement",
... ...
@@ -723,19 +699,17 @@ Example:
723 699
 
724 700
 =head2 C<update>
725 701
 
726
-Update rows.
727
-
728 702
     $affected = $dbi->update(table  => $table, 
729 703
                              param  => {%params},
730 704
                              where  => {%where},
731 705
                              append => $append,
732 706
                              filter => {%filter})
733 707
 
734
-Retruned value is affected rows count
708
+Update rows.
709
+Retrun value is the count of affected rows.
735 710
 
736
-Example:
711
+B<Example:>
737 712
 
738
-    #update
739 713
     $dbi->update(table  => 'books',
740 714
                  param  => {title => 'Perl', author => 'Taro'},
741 715
                  where  => {id => 5},
... ...
@@ -744,36 +718,32 @@ Example:
744 718
 
745 719
 =head2 C<update_all>
746 720
 
747
-Update all rows.
748
-
749 721
     $affected = $dbi->update_all(table  => $table, 
750 722
                                  param  => {%params},
751 723
                                  filter => {%filter},
752 724
                                  append => $append);
753 725
 
754
-Retruned value is affected rows count.
726
+Update all rows.
727
+Retrun value is the count of affected rows.
755 728
 
756
-Example:
729
+B<Example:>
757 730
 
758
-    # update_all
759 731
     $dbi->update_all(table  => 'books', 
760 732
                      param  => {author => 'taro'},
761 733
                      filter => {author => 'encode_utf8'});
762 734
 
763 735
 =head2 C<delete>
764 736
 
765
-Delete rows.
766
-
767 737
     $affected = $dbi->delete(table  => $table,
768 738
                              where  => {%where},
769 739
                              append => $append,
770 740
                              filter => {%filter});
771 741
 
772
-Retrun value is affected rows count
742
+Delete rows.
743
+Retrun value is the count of affected rows.
773 744
     
774
-Example:
745
+B<Example:>
775 746
 
776
-    # delete
777 747
     $dbi->delete(table  => 'books',
778 748
                  where  => {id => 5},
779 749
                  append => 'some statement',
... ...
@@ -781,21 +751,17 @@ Example:
781 751
 
782 752
 =head2 C<delete_all>
783 753
 
784
-Delete all rows.
785
-
786 754
     $affected = $dbi->delete_all(table => $table);
787 755
 
788
-Retruned value is affected rows count.
756
+Delete all rows.
757
+Retrun value is the count of affected rows.
789 758
 
790
-Example:
759
+B<Example:>
791 760
     
792
-    # delete_all
793 761
     $dbi->delete_all(table => 'books');
794 762
 
795 763
 =head2 C<select>
796 764
     
797
-Select rows.
798
-
799 765
     $result = $dbi->select(table    => $table,
800 766
                            column   => [@column],
801 767
                            where    => {%where},
... ...
@@ -803,9 +769,10 @@ Select rows.
803 769
                            relation => {%relation},
804 770
                            filter   => {%filter});
805 771
 
772
+Select rows.
806 773
 Return value is the instance of L<DBIx::Custom::Result>.
807 774
 
808
-Example:
775
+B<Example:>
809 776
 
810 777
     # select * from books;
811 778
     $result = $dbi->select(table => 'books');
... ...
@@ -861,6 +828,7 @@ See also L<DBIx::Custom::SQLTemplate> to know how to write SQL template.
861 828
 =head2 C<register_filter>
862 829
 
863 830
     $dbi->register_filter(%filters);
831
+    $dbi->register_filter(\%filters);
864 832
     
865 833
 Resister filter.
866 834
 
... ...
@@ -915,6 +883,14 @@ B<Example:>
915 883
         }
916 884
     );
917 885
 
886
+=head1 BUGS
887
+
888
+Please tell me bugs.
889
+
890
+C<< <kimoto.yuki at gmail.com> >>
891
+
892
+L<http://github.com/yuki-kimoto/DBIx-Custom>
893
+
918 894
 =head1 AUTHOR
919 895
 
920 896
 Yuki Kimoto, C<< <kimoto.yuki at gmail.com> >>
+26 -21
lib/DBIx/Custom/MySQL.pm
... ...
@@ -1,7 +1,7 @@
1 1
 package DBIx::Custom::MySQL;
2 2
 
3
-use warnings;
4 3
 use strict;
4
+use warnings;
5 5
 
6 6
 use base 'DBIx::Custom';
7 7
 
... ...
@@ -36,16 +36,16 @@ sub last_insert_id { shift->dbh->{mysql_insertid} }
36 36
 
37 37
 =head1 NAME
38 38
 
39
-DBIx::Custom::MySQL - a MySQL implementation of DBIx::Custom
39
+DBIx::Custom::MySQL - Implementation for MySQL
40 40
 
41 41
 =head1 SYNOPSYS
42 42
 
43
-    # Connect
44
-    my $dbi = DBIx::Custom::MySQL->connect(user      => 'taro', 
43
+    # Connect to database
44
+    my $dbi = DBIx::Custom::MySQL->connect(user     => 'taro', 
45 45
                                            password => 'kliej&@K',
46
-                                           database  => 'your_database');
46
+                                           database => 'your_database');
47 47
     
48
-    # Last insert id
48
+    # Get last insert id
49 49
     my $id = $dbi->last_insert_id;
50 50
 
51 51
 =head1 ATTRIBUTES
... ...
@@ -55,29 +55,30 @@ You can use all attributes of L<DBIx::Custom>
55 55
 
56 56
 =head2 C<database>
57 57
 
58
-Database name
59
-
60 58
     $dbi      = $dbi->database('your_database');
61 59
     $database = $dbi->database;
62 60
 
63
-=head2 C<host>
61
+Database name.
62
+This is used for connect().
64 63
 
65
-Database host name.
64
+=head2 C<host>
66 65
 
67 66
     $dbi  = $dbi->host('somehost.com');
68 67
     $host = $dbi->host;
69 68
 
70
-IP address can be set to host attribute.
69
+Database host name.
70
+You can also set IP address, instead of host name.
71
+This is used for connect().
71 72
 
72 73
     $dbi->host('127.03.45.12');
73 74
 
74 75
 =head2 C<port>
75 76
 
76
-Database port.
77
-
78 77
     $dbi  = $dbi->port(1198);
79 78
     $port = $dbi->port;
80 79
 
80
+Database port. This is used for connect().
81
+
81 82
 =head1 METHODS
82 83
 
83 84
 This class is L<DBIx::Custom> subclass.
... ...
@@ -85,20 +86,24 @@ You can use all methods of L<DBIx::Custom>.
85 86
 
86 87
 =head2 C<connect (overridden)>
87 88
 
88
-Connect to database.
89
+    $dbi = DBIx::Custom::MySQL->connect(
90
+        data_source => "dbi:mysql:database=books;host=somehost;port=2000"
91
+    );
92
+    
93
+    $dbi = DBIx::Custom::MySQL->connect(user     => 'taro', 
94
+                                        password => 'kliej&@K',
95
+                                        database => 'your_database',
96
+                                        host     => 'somehost',
97
+                                        port     => 2000);
89 98
 
90
-    # Connect
91
-    my $dbi = DBIx::Custom::MySQL->connect(user      => 'taro', 
92
-                                           password => 'kliej&@K',
93
-                                           database  => 'your_database');
99
+Connect to database. You can also specify database, host, and port
100
+(instead of data soruce).
94 101
 
95 102
 =head2 C<last_insert_id>
96 103
 
97
-Last insert ID.
98
-
99 104
     $last_insert_id = $dbi->last_insert_id;
100 105
 
106
+Get last insert id.
101 107
 This is equal to MySQL last_insert_id() function.
102 108
 
103
-    
104 109
 =cut
+11 -12
lib/DBIx/Custom/Query.pm
... ...
@@ -11,50 +11,49 @@ __PACKAGE__->attr([qw/sql columns default_filter filter sth/]);
11 11
 
12 12
 =head1 NAME
13 13
 
14
-DBIx::Custom::Query - query used by DBIx::Custom
14
+DBIx::Custom::Query - Query
15 15
 
16 16
 =head1 SYNOPSIS
17 17
     
18
-    # New
19 18
     my $query = DBIx::Custom::Query->new;
20 19
     
21 20
 =head1 ATTRIBUTES
22 21
 
23 22
 =head2 C<sql>
24 23
 
25
-SQL statement.
26
-
27 24
     $query = $query->sql($sql);
28 25
     $sql   = $query->sql;
29 26
 
30
-=head2 C<columns>
27
+SQL statement.
31 28
 
32
-Column names.
29
+=head2 C<columns>
33 30
 
34 31
     $query   = $query->columns([@columns]);
35 32
     $columns = $query->columns;
36 33
 
37
-=head2 C<default_filter>
34
+Column names.
38 35
 
39
-Default filter.
36
+=head2 C<default_filter>
40 37
 
41 38
     $query          = $query->default_filter($filter);
42 39
     $default_filter = $query->default_filter;
43 40
 
44
-=head2 C<filter>
41
+Default filter for value binding.
45 42
 
46
-Filter.
43
+=head2 C<filter>
47 44
 
48 45
     $query  = $query->filter({%filter});
49 46
     $filter = $query->filter;
50 47
 
51
-=head2 C<sth>
48
+Filters for value binding
52 49
 
53
-Statement handle.
50
+=head2 C<sth>
54 51
 
55 52
     $query = $query->sth($sth);
56 53
     $sth   = $query->sth;
57 54
 
55
+Statement handle.
56
+
58 57
 =head1 METHODS
59 58
 
60 59
 This class is L<Object::Simple> subclass.
+20 -28
lib/DBIx/Custom/Result.pm
... ...
@@ -166,7 +166,7 @@ sub fetch_hash_all {
166 166
 
167 167
 =head1 NAME
168 168
 
169
-DBIx::Custom::Result - DBIx::Custom Resultset
169
+DBIx::Custom::Result - Manipulate the result of select statement
170 170
 
171 171
 =head1 SYNOPSIS
172 172
     
... ...
@@ -215,25 +215,25 @@ DBIx::Custom::Result - DBIx::Custom Resultset
215 215
 
216 216
 =head2 C<sth>
217 217
 
218
-Statement handle.
219
-
220 218
     $result = $result->sth($sth);
221 219
     $sth    = $reuslt->sth
222
-    
223
-=head2 C<default_filter>
224 220
 
225
-Default filter.
221
+Statement handle.
222
+
223
+=head2 C<default_filter>
226 224
 
227 225
     $result         = $result->default_filter('decode_utf8');
228 226
     $default_filter = $result->default_filter;
229 227
 
230
-=head2 C<filter>
228
+Default filter for fetching.
231 229
 
232
-Filter
230
+=head2 C<filter>
233 231
 
234 232
     $result = $result->filter({title => 'decode_utf8'});
235 233
     $filter = $result->filter;
236 234
 
235
+Filters for fetching.
236
+
237 237
 =head1 METHODS
238 238
 
239 239
 This class is L<Object::Simple> subclass.
... ...
@@ -241,11 +241,9 @@ You can use all methods of L<Object::Simple>
241 241
 
242 242
 =head2 C<fetch>
243 243
 
244
-Fetch a row into array
245
-
246 244
     $row = $result->fetch;
247 245
 
248
-Example:
246
+Fetch a row into array
249 247
 
250 248
     while (my $row = $result->fetch) {
251 249
         # do something
... ...
@@ -255,17 +253,15 @@ Example:
255 253
 
256 254
 =head2 C<fetch_first>
257 255
 
258
-Fetch only first row into array and finish statment handle.
259
-
260 256
     $row = $result->fetch_first;
261 257
 
262
-=head2 C<fetch_multi>
258
+Fetch only first row into array and finish statment handle.
263 259
 
264
-Fetch multiple rows into array of array.
260
+=head2 C<fetch_multi>
265 261
 
266 262
     $rows = $result->fetch_multi($count);
267 263
     
268
-Example:
264
+Fetch multiple rows into array of array.
269 265
 
270 266
     while(my $rows = $result->fetch_multi(10)) {
271 267
         # do someting
... ...
@@ -273,17 +269,15 @@ Example:
273 269
 
274 270
 =head2 C<fetch_all>
275 271
 
276
-Fetch all rows into array of array.
277
-
278 272
     $rows = $result->fetch_all;
279 273
 
280
-=head2 C<fetch_hash>
274
+Fetch all rows into array of array.
281 275
 
282
-Fetch a row into hash
276
+=head2 C<fetch_hash>
283 277
 
284 278
     $row = $result->fetch_hash;
285 279
 
286
-Example:
280
+Fetch a row into hash
287 281
 
288 282
     while (my $row = $result->fetch_hash) {
289 283
         my $val1 = $row->{title};
... ...
@@ -294,17 +288,15 @@ Example:
294 288
 
295 289
 =head2 C<fetch_hash_first>
296 290
     
297
-Fetch only first row into hash and finish statment handle.
298
-
299 291
     $row = $result->fetch_hash_first;
300 292
 
301
-=head2 C<fetch_hash_multi>
293
+Fetch only first row into hash and finish statment handle.
302 294
 
303
-Fetch multiple rows into array of hash
295
+=head2 C<fetch_hash_multi>
304 296
 
305 297
     $rows = $result->fetch_hash_multi($count);
306 298
     
307
-Example:
299
+Fetch multiple rows into array of hash
308 300
 
309 301
     while(my $rows = $result->fetch_hash_multi(10)) {
310 302
         # do someting
... ...
@@ -312,8 +304,8 @@ Example:
312 304
 
313 305
 =head2 C<fetch_hash_all>
314 306
 
315
-Fetch all rows into array of hash.
316
-
317 307
     $rows = $result->fetch_hash_all;
318 308
 
309
+Fetch all rows into array of hash.
310
+
319 311
 =cut
+1 -1
lib/DBIx/Custom/SQLTemplate.pm
... ...
@@ -209,7 +209,7 @@ sub _placeholder_count {
209 209
 
210 210
 =head1 NAME
211 211
 
212
-DBIx::Custom::SQLTemplate - DBIx::Custom SQL Template
212
+DBIx::Custom::SQLTemplate - SQL template system
213 213
 
214 214
 =head1 SYNOPSIS
215 215
     
+4 -4
lib/DBIx/Custom/SQLTemplate/TagProcessor.pm
... ...
@@ -121,11 +121,11 @@ DBIx::Custom::SQLTemplate::TagProcessor - Tag processor
121 121
 
122 122
 =head1 FUNCTIONS
123 123
 
124
-=head2 expand_basic_tag
124
+=head2 C<expand_basic_tag>
125 125
 
126
-=head2 expand_in_tag
126
+=head2 C<expand_in_tag>
127 127
 
128
-=head2 expand_insert_tag
128
+=head2 C<expand_insert_tag>
129 129
 
130
-=head2 expand_update_tag
130
+=head2 C<expand_update_tag>
131 131
 
+20 -19
lib/DBIx/Custom/SQLite.pm
... ...
@@ -24,7 +24,7 @@ sub connect {
24 24
 }
25 25
 
26 26
 sub connect_memory {
27
-    my $self = shift;
27
+    my $self = shift->new(@_);
28 28
     
29 29
     # Data source for memory database
30 30
     $self->data_source('dbi:SQLite:dbname=:memory:');
... ...
@@ -41,21 +41,19 @@ sub last_insert_rowid { shift->dbh->func('last_insert_rowid') }
41 41
 
42 42
 =head1 NAME
43 43
 
44
-DBIx::Custom::SQLite - a SQLite implementation of DBIx::Custom
44
+DBIx::Custom::SQLite - Implementation for SQLite
45 45
 
46 46
 =head1 SYNOPSYS
47 47
 
48 48
     use DBIx::Custom::SQLite;
49 49
     
50
-    # Connect
51
-    my $dbi = DBIx::Custom::SQLite->connect(user      => 'taro', 
52
-                                            password => 'kl&@K',
53
-                                            database  => 'your_database');
50
+    # Connect to database
51
+    my $dbi = DBIx::Custom::SQLite->connect(database  => 'dbname');
54 52
     
55
-    # Connect memory database
53
+    # Connect to memory database
56 54
     my $dbi = DBIx::Custom::SQLite->connect_memory;
57 55
     
58
-    # Last insert row ID
56
+    # Get last insert row id
59 57
     my $id = $dbi->last_insert_rowid;
60 58
     
61 59
 =head1 ATTRIBUTES
... ...
@@ -65,36 +63,39 @@ You can use all attributes of L<DBIx::Custom>.
65 63
 
66 64
 =head2 C<database>
67 65
 
68
-Database name
69
-
70 66
     $dbi      = $dbi->database('your_database');
71 67
     $database = $dbi->database;
72 68
 
69
+Database name.
70
+This is used for connect().
71
+
73 72
 =head1 METHODS
74 73
 
75 74
 This class is L<DBIx::Custom> subclass.
76 75
 You can use all methods of L<DBIx::Custom>.
77 76
 
78 77
 =head2 C<connect (overridden)>
78
+    
79
+    $dbi = DBIx::Custom::SQLite->connect(
80
+        data_source  => "dbi:SQLite:dbname=your_db"
81
+    );
82
+    
83
+    $dbi = DBIx::Custom::SQLite->connect(database  => 'your_db');
79 84
 
80 85
 Connect to database.
81
-
82
-    $dbi->connect;
83
-
84
-If you set database, host, or port, data source is automatically created.
86
+You can also specify database name, instead of data source.
85 87
 
86 88
 =head2 C<connect_memory>
87 89
 
88
-Connect memory database.
89
-
90 90
     $dbi->connect_memory;
91 91
 
92
-=head2 C<last_insert_rowid>
92
+Connect to memory database.
93 93
 
94
-Last insert row ID.
94
+=head2 C<last_insert_rowid>
95 95
 
96 96
     $last_insert_rowid = $dbi->last_insert_rowid;
97
-    
97
+
98
+Get last insert row id.
98 99
 This is equal to SQLite last_insert_rowid() function.
99 100
 
100 101
 =cut
-5
t/dbix-custom-core-sqlite.t
... ...
@@ -62,11 +62,6 @@ my $update_query;
62 62
 my $ret_val;
63 63
 
64 64
 
65
-test 'disconnect';
66
-$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
67
-$dbi->disconnect;
68
-ok(!$dbi->dbh, $test);
69
-
70 65
 # Prepare table
71 66
 $dbi = DBIx::Custom->connect($NEW_ARGS->{0});
72 67
 $dbi->execute($CREATE_TABLE->{0});
+4 -5
t/dbix-custom-sqlite.t
... ...
@@ -35,7 +35,7 @@ my $db_file;
35 35
 my $id;
36 36
 
37 37
 test 'connect_memory';
38
-$dbi = DBIx::Custom::SQLite->connect(database => ':memory:');
38
+$dbi = DBIx::Custom::SQLite->connect_memory;
39 39
 $ret_val = $dbi->execute($CREATE_TABLE->{0});
40 40
 ok(defined $ret_val, $test);
41 41
 $dbi->insert(table => 'table1', param => {key1 => 'a', key2 => 2});
... ...
@@ -50,15 +50,14 @@ $dbi->connect;
50 50
 ok(-f $db_file, "$test : database file");
51 51
 $ret_val = $dbi->execute($CREATE_TABLE->{0});
52 52
 ok(defined $ret_val, "$test : database");
53
-$dbi->disconnect;
53
+$dbi->dbh->disconnect;
54 54
 unlink $db_file if -f $db_file;
55 55
 
56 56
 test 'last_insert_rowid';
57
-$dbi = DBIx::Custom::SQLite->new;
58
-$dbi->connect_memory;
57
+$dbi = DBIx::Custom::SQLite->connect_memory;
59 58
 $ret_val = $dbi->execute($CREATE_TABLE->{0});
60 59
 $dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
61 60
 is($dbi->last_insert_rowid, 1, "$test: first");
62 61
 $dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
63 62
 is($dbi->last_insert_rowid, 2, "$test: second");
64
-$dbi->disconnect;
63
+$dbi->dbh->disconnect;