Showing 3 changed files with 70 additions and 87 deletions
+1 -1
lib/DBIx/Custom.pm
... ...
@@ -1,6 +1,6 @@
1 1
 package DBIx::Custom;
2 2
 
3
-our $VERSION = '0.1643';
3
+our $VERSION = '0.1644';
4 4
 
5 5
 use 5.008001;
6 6
 use strict;
+62 -76
lib/DBIx/Custom/Guide.pod
... ...
@@ -355,7 +355,7 @@ This is used to specify column names and table names at once
355 355
 Note that you can't use where clause in C<selection>.
356 356
 use clause like "inner join".
357 357
 
358
-=head3 C<execute()> SQL
358
+=head3 C<execute()>
359 359
 
360 360
 use C<execute()> to execute SQL
361 361
 
... ...
@@ -385,7 +385,7 @@ You don't have to wirte last semicolon in C<execute()>.
385 385
 Return value of C<select()> is L<DBIx::Custom::Result> object.
386 386
 There are many methods to fetch row.
387 387
 
388
-=head3 Fetch a row (array) C<fetch()>
388
+=head3 Fetch a row (array) : C<fetch()>
389 389
 
390 390
 use C<fetch()> to fetch a row and assign it into array reference.
391 391
 
... ...
@@ -398,7 +398,7 @@ You can get all rows.
398 398
         my $author = $row->[1];
399 399
     }
400 400
 
401
-=head3 Fetch only first row (array) C<fetch_first()>
401
+=head3 Fetch only first row (array) : C<fetch_first()>
402 402
 
403 403
 use C<fetch_first()> to fetch only first row.
404 404
 
... ...
@@ -407,7 +407,7 @@ use C<fetch_first()> to fetch only first row.
407 407
 You can't fetch rest rows
408 408
 because statement handle C<finish()> is executed.
409 409
 
410
-=head3 Fetch rows (array) C<fetch_multi()>
410
+=head3 Fetch rows (array) : C<fetch_multi()>
411 411
 
412 412
 use C<fetch_multi()> to fetch rows and assign it into
413 413
 array reference which has array references as element.
... ...
@@ -429,7 +429,7 @@ You can get the following data.
429 429
         ['Ruby', 'Mark']
430 430
     ]
431 431
 
432
-=head3 Fetch all rows (array) C<fetch_all>
432
+=head3 Fetch all rows (array) : C<fetch_all>
433 433
 
434 434
 use C<fetch_all()> to fetch all rows and assign it into
435 435
 array reference which has array reference as element.
... ...
@@ -443,7 +443,7 @@ You can get the following data.
443 443
         ['Ruby', 'Mark']
444 444
     ]
445 445
 
446
-=head3 Fetch a row (hash) C<fetch_hash()>
446
+=head3 Fetch a row (hash) : C<fetch_hash()>
447 447
 
448 448
 use C<fetch_hash()> to fetch a row and assign it into hash reference.
449 449
 
... ...
@@ -452,7 +452,7 @@ use C<fetch_hash()> to fetch a row and assign it into hash reference.
452 452
         my $author = $row->{author};
453 453
     }
454 454
 
455
-=head3 Fetch only first row (hash) C<fetch_hash_first()>
455
+=head3 Fetch only first row (hash) : C<fetch_hash_first()>
456 456
 
457 457
 use C<fetch_hash_first()> to fetch only first row
458 458
 and assign it into hash reference.
... ...
@@ -462,7 +462,7 @@ and assign it into hash reference.
462 462
 You can't fetch rest rows
463 463
 because statement handle C<finish()> is executed.
464 464
 
465
-=head3 Fetch rows (hash) C<fetch_hash_multi()>
465
+=head3 Fetch rows (hash) : C<fetch_hash_multi()>
466 466
 
467 467
 use C<fetch_hash_multi()> to fetch rows and
468 468
 assign it into array reference which has hash references as element.
... ...
@@ -483,7 +483,7 @@ You can get the following data.
483 483
         {title => 'Ruby', author => 'Mark'}
484 484
     ]
485 485
 
486
-=head3 Fetch all rows (hash) C<fetch_hash_all()>
486
+=head3 Fetch all rows (hash) : C<fetch_hash_all()>
487 487
 
488 488
 use C<fetch_hash_all()> to fetch all rows and
489 489
 assign it into array reference which has hash 
... ...
@@ -498,7 +498,7 @@ You can get the following data.
498 498
         {title => 'Ruby', author => 'Mark'}
499 499
     ]
500 500
 
501
-=head3 Statement handle C<sth()>
501
+=head3 Statement handle : C<sth()>
502 502
 
503 503
 use <sth()> to get statement handle.
504 504
 
... ...
@@ -512,7 +512,7 @@ database date format when register data into database.
512 512
 and convert database date fromat to L<Time::Piece> object
513 513
 when get data from database.
514 514
 
515
-=head3 Register filter C<register_filter()>
515
+=head3 Register filter : C<register_filter()>
516 516
 
517 517
 use C<register_filter() to register filter.
518 518
 
... ...
@@ -536,7 +536,7 @@ use C<register_filter() to register filter.
536 536
 
537 537
 Registered filter is used by C<apply_filter()> or etc.
538 538
 
539
-=head3 Apply filter C<apply_filter()>
539
+=head3 Apply filter : C<apply_filter()>
540 540
 
541 541
 use C<apply_filter()> to apply registered filter.
542 542
 
... ...
@@ -641,7 +641,7 @@ use C<end_filter()> to add end filter.
641 641
 
642 642
 In this example, L<Time::Piece> object is converted to readable format.
643 643
 
644
-=head3 Automate applying filter C<each_column()>
644
+=head3 Automate applying filter : C<each_column()>
645 645
 
646 646
 It is useful to apply filter automatically at date type columns.
647 647
 You can use C<each_column()> to process all column infos.
... ...
@@ -712,8 +712,6 @@ You have to use C<table> tag in SQL
712 712
 
713 713
 =head3 Tag list
714 714
 
715
-L<DBIx::Custom>�ł͎��̃^�O���g�p�”\�ł��B
716
-
717 715
 The following tag is available.
718 716
 
719 717
 =head4 C<table>
... ...
@@ -779,7 +777,7 @@ In this case, You specify paramter values as array reference.
779 777
 
780 778
     my $dbi->execute($sql, param => {date => ['2010-10-01', '2012-02-10']});
781 779
 
782
-=head3 Register Tag C<register_tag()>
780
+=head3 Register Tag : C<register_tag()>
783 781
 
784 782
 You can register custom tag.
785 783
 use C<register_tag()> to register tag.
... ...
@@ -827,116 +825,107 @@ You return the following array reference.
827 825
 
828 826
 See source of L<DBIx::Custom::Tag> to see many implementation.
829 827
 
830
-=head2 6. Where��̓��I�Ȑ���
828
+=head2 6. Dinamically create where clause
831 829
 
832
-=head3 Where��̓��I�Ȑ��� where()
830
+=head3 Dinamically create where clause : where()
833 831
 
834
-�����̌�����w�肵�āA�����s�������ꍇ������܂��B
835
-����3�‚̃P�[�X��where���l���Ă݂܂��傤�B
836
-���L�̂悤��where�傪�K�v�ɂȂ�܂��B
832
+You want to search multiple conditions in many times.
833
+Let's think the following three cases.
837 834
 
838
-title�̒l�����Ō�������ꍇ
835
+Case1: Search only C<title>
839 836
 
840 837
     where {= title}
841 838
 
842
-author�̒l�����Ō�������ꍇ
839
+Case2: Search only C<author>
843 840
 
844 841
     where {= author}
845 842
 
846
-title��author�̗���̒l�Ō�������ꍇ
843
+Case3: Search C<title> and C<author>
847 844
 
848 845
     where {= title} and {=author}
849 846
 
850
-L<DBIx::Custom>�ł͓��I��Where��̐�����T�|�[�g���Ă��܂��B
851
-�܂�C<where()>��L<DBIx::Custom::Where>�I�u�W�F�N�g�𐶐����܂��B
847
+L<DBIx::Custom> support dinamic where clause creating.
848
+At first, create L<DBIx::Custom::Where> object by C<where()>.
852 849
 
853 850
     my $where = $dbi->where;
854 851
 
855
-����C<clause()>��g�p����where���L�q���܂��B
852
+Set clause by C<clause()>
856 853
 
857 854
     $where->clause(
858 855
         ['and', '{= title'}, '{= author}']
859 856
     );
860 857
 
861
-clause�̎w���@�͎��̂悤�ɂȂ�܂��B
858
+C<clause> is the following format.
862 859
 
863
-    ['or' ���邢�� 'and', �^�O1, �^�O2, �^�O3]
860
+    ['or' or 'and', TAG1, TAG2, TAG3]
864 861
 
865
-����ɂ�or���邢��and��w�肵�܂��B����ȍ~�ɂ�
866
-������^�O��g��ċL�q���܂��B
862
+First argument is 'or' or 'and'.
863
+Later than first argument are tag names.
867 864
 
868
-C<clause>�̎w��͓��q�ɂ��邱�Ƃ�ł��A����ɕ��G�ȏ�
869
-��L�q���邱�Ƃ�ł��܂��B
865
+You can write more complex format.
870 866
 
871 867
     ['and', 
872 868
       '{= title}', 
873 869
       ['or', '{= author}', '{like date}']
874 870
     ]
875 871
 
876
-���̂悤��C<clause>��ݒ肵�����C<param>�Ƀp�����[�^��w�肵�܂��B
872
+This mean "{=title} and ( {=author} or {like date} )".
873
+
874
+After setting C<clause>, set C<param>.
877 875
     
878
-    my $param => {title => 'Perl'};
879
-    $where->param($param);
876
+    $where->param({title => 'Perl'});
880 877
 
881
-���̗�ł�title�������p�����[�^�Ɋ܂܂�Ă��܂��B
878
+In this example, parameter contains only title.
882 879
 
883
-���̌�C<to_string()>���s�����$param�Ɋ܂܂��p�����[�^�𖞂���
884
-where��𐶐����邱�Ƃ��ł��܂��B
880
+If you execute C<string_to()>, you can get where clause
881
+which contain only parameter name.
885 882
 
886 883
     my $where_clause = $where->to_string;
887 884
 
888
-�p�����[�^��title�����ł��̂ŁA���̂悤��where�傪��������܂��B
885
+Parameter name is only title, the following where clause is created.
889 886
 
890 887
     where {= title}
891 888
 
892
-�܂�L<DBIx::Custom>�͕�����̕]����I�[�o�[���[�h���āAC<to_string()>
893
-��Ăяo���悤�ɂ��Ă��܂��̂ŁA���̂悤�ɂ���where��𐶐����邱�Ƃ�
894
-�ł��܂��B
889
+You can also create where clause by stringification.
895 890
 
896 891
     my $where_clause = "$where";
897 892
 
898
-�����SQL�̒���where��𖄂ߍ��ނƂ��ɂƂĂ�𗧂‹@�\�ł��B
893
+This is useful to embbed it into SQL. 
899 894
 
900
-=head3 ����̗񖼂�܂ޏꍇ
895
+=head3 In case where clause contains same name columns
901 896
 
902
-�^�O�̒��ɓ���̖��O��‚�̂����݂����ꍇ�ł��I��
903
-where���쐬���邱�Ƃ��ł��܂��B
904
-
905
-���Ƃ��΁A�p�����[�^�Ƃ��ĊJ�n��t�ƏI����t��󂯎������Ƃ�
906
-�l���Ă݂Ă��������B
897
+Even if same name tags exists, you can create where clause.
898
+Let's think that there are starting date and ending date.
907 899
 
908 900
     my $param = {start_date => '2010-11-15', end_date => '2011-11-21'};
909 901
 
910
-�܂��J�n��t�ƏI����t�̕Е���A�ǂ����󂯎��Ȃ��ꍇ���邩����܂���B
911
-
912
-���̏ꍇ�͎��̂悤�ȃp�����[�^�ɕϊ����邱�ƂőΉ����邱�Ƃ��ł��܂��B
902
+In this case, you set parameter value as array reference.
913 903
 
914 904
     my $p = {date => ['2010-11-15', '2011-11-21']};
915 905
 
916
-�l���z��̃��t�@�����X�ɂȂ�Ă��邱�Ƃɒ��ڂ��Ă��������B���̂悤�ɂ����
917
-�����̗��܂ރ^�O�ɏ��Ԃɖ��ߍ��ނ��Ƃ��ł��܂��B
906
+You can embbed these values into same name tags.
918 907
 
919 908
     $where->clause(
920 909
         ['and', '{> date}', '{< date}']
921 910
     );
922 911
     $where->param($p);
923 912
 
924
-�܂��J�n��t�����݂��Ȃ��ꍇ�͎��̂悤�ȃf�[�^��쐬���܂��B
913
+If starting date isn't exists, create the following parameter.
925 914
 
926 915
     my $p = {date => [$dbi->not_exists, '2011-11-21']};
927 916
 
928
-L<DBIx::Custom>��C<not_exists>��DBIx::Custom::NotExists�I�u�W�F�N�g��
929
-�擾�ł��܂��B����͑Ή�����l�����݂��Ȃ����Ƃ�����߂̂�̂ł��B
917
+You can get DBIx::Custom::NotExists object by C<not_exists()>
918
+This mean correnspondinf value isn't exists.
930 919
 
931
-�܂��I����t�����݂��Ȃ��ꍇ�͎��̂悤�ȃf�[�^��쐬���܂��B
920
+If ending date isn't exists, create the following parameter.
932 921
 
933 922
     my $p = {date => ['2010-11-15']};
934 923
 
935
-�ǂ�����݂��Ȃ��ꍇ�͎��̂悤�ȃf�[�^��쐬���܂��B
924
+If both date isn't exists, create the following parameter.
936 925
 
937 926
     my $p = {date => []};
938 927
 
939
-��������̂ň�ԊȒP�ɍ쐬�ł��郍�W�b�N����Ă����܂��B
928
+This logic is a little difficut. See the following ones.
940 929
 
941 930
     my @date;
942 931
     push @date, exists $param->{start_date} ? $param->{start_date}
... ...
@@ -944,30 +933,27 @@ L<DBIx::Custom>
944 933
     push @date, $param->{end_date} if exists $param->{end_date};
945 934
     my $p = {date => \@date};
946 935
 
947
-=head3 C<select()>�Ƃ̘A�g
936
+=head3 With C<select()>
948 937
 
949
-L<DBIx::Custom::Where>�I�u�W�F�N�g��
950
-C<select()>��C<where>�ɒ��ړn�����Ƃ�
951
-�ł��܂��B
938
+You can pass L<DBIx::Custom::Where> object to C<where> of C<select()>.
952 939
     
953 940
     my $where = $dbi->where;
954
-    $where->clause(...);
955
-    $where->param($param);
941
+    $where->clause(['and', '{= title}', '{= author}']);
942
+    $where->param({title => 'Perl'});
956 943
     my $result = $dbi->select(table => 'book', where => $where);
957 944
 
958
-���邢��C<update()>�AC<delete()>��where�Ɏw�肷�邱�Ƃ�”\�ł��B
959
-
960
-=head3 C<execute()>�Ƃ̘A�g
945
+You can also pass it to C<where> of C<update()>�AC<delete()>
961 946
 
962
-C<execute()>�Ƃ̘A�g�ł��BSQL��쐬����Ƃ��ɖ��ߍ��ނ��Ƃ��ł��܂��B
947
+=head3 With C<execute()>
963 948
 
949
+L<DBIx::Custom::Where> object is embedded into SQL.
964 950
 
965 951
     my $where = $dbi->where;
966
-    $where->clause(...);
967
-    $where->param($param);
952
+    $where->clause(['and', '{= title}', '{= author}']);
953
+    $where->param({title => 'Perl'});
968 954
 
969
-    my $sql = <<"EOS"
970
-    select * from book;
955
+    my $sql = <<"EOS";
956
+    select * from {table book};
971 957
     $where
972 958
     EOS
973 959
 
... ...
@@ -1153,7 +1139,7 @@ You can change result class. By default it is L<DBIx::Custom::Result>.
1153 1139
     my $dbi = DBIx::Custom->connect(...);
1154 1140
     $dbi->result_class('MyResult');
1155 1141
 
1156
-=head3 �L���b�V���O
1142
+=head3 Caching
1157 1143
 
1158 1144
 SQL after parsing tag is cached for performance.
1159 1145
 You can set C<cache()>. By default, chaching is true.
+7 -10
lib/DBIx/Custom/Guide/Ja.pod
... ...
@@ -849,7 +849,6 @@ C<=>タグの場合は
849 849
 
850 850
 複数の検索条件を指定して、検索を行いたい場合があります。
851 851
 次の3つのケースのwhere句を考えてみましょう。
852
-下記のようなwhere句が必要になります。
853 852
 
854 853
 titleの値だけで検索したい場合
855 854
 
... ...
@@ -889,10 +888,11 @@ C<clause>の指定は入れ子にすることもでき、さらに複雑な条
889 888
       ['or', '{= author}', '{like date}']
890 889
     ]
891 890
 
892
-このようにC<clause>を設定した後にC<param>にパラメータを指定します。
891
+これは "{=title} and ( {=author} or {like date} )" 意味しています。
892
+
893
+C<clause>を設定した後にC<param>にパラメータを指定します。
893 894
     
894
-    my $param => {title => 'Perl'};
895
-    $where->param($param);
895
+    $where->param({title => 'Perl'});
896 896
 
897 897
 この例ではtitleだけがパラメータに含まれています。
898 898
 
... ...
@@ -923,13 +923,10 @@ where句を作成することができます。
923 923
 
924 924
     my $param = {start_date => '2010-11-15', end_date => '2011-11-21'};
925 925
 
926
-また開始日付と終了日付の片方だけや、どちらも受け取らない場合もあるかもしれません。
927
-
928
-この場合は次のようなパラメータに変換することで対応することができます。
926
+この場合はパラメータの値を配列のリファレンスにしてください。
929 927
 
930 928
     my $p = {date => ['2010-11-15', '2011-11-21']};
931 929
 
932
-値が配列のリファレンスになっていることに注目してください。このようにすれば
933 930
 同名の列を含むタグに順番に埋め込むことができます。
934 931
 
935 932
     $where->clause(
... ...
@@ -941,7 +938,7 @@ where句を作成することができます。
941 938
 
942 939
     my $p = {date => [$dbi->not_exists, '2011-11-21']};
943 940
 
944
-L<DBIx::Custom>のC<not_exists>でDBIx::Custom::NotExistsオブジェクトを
941
+C<not_exists()>でDBIx::Custom::NotExistsオブジェクトを
945 942
 取得できます。これは対応する値が存在しないことを示すためのものです。
946 943
 
947 944
 また終了日付が存在しない場合は次のようなデータを作成します。
... ...
@@ -982,7 +979,7 @@ C<execute()>との連携です。SQLを作成するときに埋め込むこと
982 979
     $where->clause(...);
983 980
     $where->param($param);
984 981
 
985
-    my $sql = <<"EOS"
982
+    my $sql = <<"EOS";
986 983
     select * from book;
987 984
     $where
988 985
     EOS