| ... | ... |
@@ -22,7 +22,7 @@ __PACKAGE__->class_attr('query_cache_max', default => 50,
|
| 22 | 22 |
|
| 23 | 23 |
__PACKAGE__->attr([qw/user password data_source/]); |
| 24 | 24 |
__PACKAGE__->attr([qw/database host port/]); |
| 25 |
-__PACKAGE__->attr([qw/bind_filter fetch_filter options/]); |
|
| 25 |
+__PACKAGE__->attr([qw/default_bind_filter default_fetch_filter options/]); |
|
| 26 | 26 |
|
| 27 | 27 |
__PACKAGE__->dual_attr([qw/ filters formats/], |
| 28 | 28 |
default => sub { {} }, inherit => 'hash_copy');
|
| ... | ... |
@@ -210,10 +210,10 @@ sub create_query {
|
| 210 | 210 |
$query->sth($sth); |
| 211 | 211 |
|
| 212 | 212 |
# Set bind filter |
| 213 |
- $query->bind_filter($self->bind_filter); |
|
| 213 |
+ $query->bind_filter($self->default_bind_filter); |
|
| 214 | 214 |
|
| 215 | 215 |
# Set fetch filter |
| 216 |
- $query->fetch_filter($self->fetch_filter); |
|
| 216 |
+ $query->fetch_filter($self->default_fetch_filter); |
|
| 217 | 217 |
|
| 218 | 218 |
return $query; |
| 219 | 219 |
} |
| ... | ... |
@@ -679,16 +679,6 @@ sub _add_query_cache {
|
| 679 | 679 |
return $class; |
| 680 | 680 |
} |
| 681 | 681 |
|
| 682 |
-sub filter_off {
|
|
| 683 |
- my $self = shift; |
|
| 684 |
- |
|
| 685 |
- # Filter off |
|
| 686 |
- $self->bind_filter(undef); |
|
| 687 |
- $self->fetch_filter(undef); |
|
| 688 |
- |
|
| 689 |
- return $self; |
|
| 690 |
-} |
|
| 691 |
- |
|
| 692 | 682 |
=head1 NAME |
| 693 | 683 |
|
| 694 | 684 |
DBIx::Custom - Customizable DBI |
| ... | ... |
@@ -824,22 +814,24 @@ This method is generally used to get a format. |
| 824 | 814 |
|
| 825 | 815 |
If you add format, use add_format method. |
| 826 | 816 |
|
| 827 |
-=head2 bind_filter |
|
| 817 |
+=head2 default_bind_filter |
|
| 828 | 818 |
|
| 829 | 819 |
Binding filter |
| 830 | 820 |
|
| 831 |
- $dbi = $dbi->bind_filter($bind_filter); |
|
| 832 |
- $bind_filter = $dbi->bind_filter |
|
| 821 |
+ $dbi = $dbi->default_bind_filter($default_bind_filter); |
|
| 822 |
+ $default_bind_filter = $dbi->default_bind_filter |
|
| 833 | 823 |
|
| 834 | 824 |
The following is bind filter sample |
| 835 |
- |
|
| 836 |
- $dbi->bind_filter(sub {
|
|
| 837 |
- my ($value, $key, $dbi, $infos) = @_; |
|
| 825 |
+ |
|
| 826 |
+ $dbi->add_filter(encode_utf8 => sub {
|
|
| 827 |
+ my $value = shift; |
|
| 838 | 828 |
|
| 839 |
- # edit $value |
|
| 829 |
+ require Encode 'encode_utf8'; |
|
| 840 | 830 |
|
| 841 |
- return $value; |
|
| 831 |
+ return encode_utf8($value); |
|
| 842 | 832 |
}); |
| 833 |
+ |
|
| 834 |
+ $dbi->default_bind_filter('encode_utf8')
|
|
| 843 | 835 |
|
| 844 | 836 |
Bind filter arguemts is |
| 845 | 837 |
|
| ... | ... |
@@ -848,23 +840,25 @@ Bind filter arguemts is |
| 848 | 840 |
3. $dbi : DBIx::Custom object |
| 849 | 841 |
4. $infos : {table => $table, column => $column}
|
| 850 | 842 |
|
| 851 |
-=head2 fetch_filter |
|
| 843 |
+=head2 default_fetch_filter |
|
| 852 | 844 |
|
| 853 | 845 |
Fetching filter |
| 854 | 846 |
|
| 855 |
- $dbi = $dbi->fetch_filter($fetch_filter); |
|
| 856 |
- $fetch_filter = $dbi->fetch_filter; |
|
| 847 |
+ $dbi = $dbi->default_fetch_filter($default_fetch_filter); |
|
| 848 |
+ $default_fetch_filter = $dbi->default_fetch_filter; |
|
| 857 | 849 |
|
| 858 | 850 |
The following is fetch filter sample |
| 859 | 851 |
|
| 860 |
- $dbi->fetch_filter(sub {
|
|
| 861 |
- my ($value, $key, $dbi, $infos) = @_; |
|
| 852 |
+ $dbi->add_filter(decode_utf8 => sub {
|
|
| 853 |
+ my $value = shift; |
|
| 862 | 854 |
|
| 863 |
- # edit $value |
|
| 855 |
+ require Encode 'decode_utf8'; |
|
| 864 | 856 |
|
| 865 |
- return $value; |
|
| 857 |
+ return decode_utf8($value); |
|
| 866 | 858 |
}); |
| 867 | 859 |
|
| 860 |
+ $dbi->default_fetch_filter('decode_utf8');
|
|
| 861 |
+ |
|
| 868 | 862 |
Bind filter arguemts is |
| 869 | 863 |
|
| 870 | 864 |
1. $value : Value |
| ... | ... |
@@ -928,17 +922,6 @@ Check if database is connected. |
| 928 | 922 |
|
| 929 | 923 |
$is_connected = $dbi->connected; |
| 930 | 924 |
|
| 931 |
-=head2 filter_off |
|
| 932 |
- |
|
| 933 |
-bind_filter and fitch_filter off |
|
| 934 |
- |
|
| 935 |
- $dbi->filter_off |
|
| 936 |
- |
|
| 937 |
-This method is equeal to |
|
| 938 |
- |
|
| 939 |
- $dbi->bind_filter(undef); |
|
| 940 |
- $dbi->fetch_filter(undef); |
|
| 941 |
- |
|
| 942 | 925 |
=head2 add_filter |
| 943 | 926 |
|
| 944 | 927 |
Resist filter |
| ... | ... |
@@ -30,14 +30,14 @@ $dbi = DBIx::Custom->new( |
| 30 | 30 |
filters => {
|
| 31 | 31 |
f => 3, |
| 32 | 32 |
}, |
| 33 |
- bind_filter => 'f', |
|
| 34 |
- fetch_filter => 'g', |
|
| 33 |
+ default_bind_filter => 'f', |
|
| 34 |
+ default_fetch_filter => 'g', |
|
| 35 | 35 |
result_class => 'g', |
| 36 | 36 |
sql_tmpl => $SQL_TMPL->{0},
|
| 37 | 37 |
); |
| 38 | 38 |
is_deeply($dbi,{user => 'a', database => 'a', password => 'b', data_source => 'c',
|
| 39 |
- options => {d => 1, e => 2}, filters => {f => 3}, bind_filter => 'f',
|
|
| 40 |
- fetch_filter => 'g', result_class => 'g', |
|
| 39 |
+ options => {d => 1, e => 2}, filters => {f => 3}, default_bind_filter => 'f',
|
|
| 40 |
+ default_fetch_filter => 'g', result_class => 'g', |
|
| 41 | 41 |
sql_tmpl => $SQL_TMPL->{0}}, $test);
|
| 42 | 42 |
isa_ok($dbi, 'DBIx::Custom'); |
| 43 | 43 |
|
| ... | ... |
@@ -121,14 +121,6 @@ $dbi = DBIx::Custom->new; |
| 121 | 121 |
$dbi->add_format(a => sub {1});
|
| 122 | 122 |
is($dbi->formats->{a}->(), 1, $test);
|
| 123 | 123 |
|
| 124 |
-test 'filter_off'; |
|
| 125 |
-$dbi = DBIx::Custom->new; |
|
| 126 |
-$dbi->bind_filter('a');
|
|
| 127 |
-$dbi->fetch_filter('b');
|
|
| 128 |
-$dbi->filter_off; |
|
| 129 |
-ok(!$dbi->bind_filter, "$test : bind_filter off"); |
|
| 130 |
-ok(!$dbi->fetch_filter, "$test : fetch_filter off"); |
|
| 131 |
- |
|
| 132 | 124 |
test 'Accessor'; |
| 133 | 125 |
$dbi = DBIx::Custom->new; |
| 134 | 126 |
$dbi->options({opt1 => 1, opt2 => 2});
|