... | ... |
@@ -306,13 +306,6 @@ sub create_model { |
306 | 306 |
? [%{$model->filter}] |
307 | 307 |
: $model->filter; |
308 | 308 |
$self->_apply_filter($model->table, @$filter); |
309 |
- my $result_filter = ref $model->result_filter eq 'HASH' |
|
310 |
- ? [%{$model->result_filter}] |
|
311 |
- : $model->result_filter; |
|
312 |
- for (my $i = 1; $i < @$result_filter; $i += 2) { |
|
313 |
- $result_filter->[$i] = {in => $result_filter->[$i]}; |
|
314 |
- } |
|
315 |
- $self->_apply_filter($model->table, @$result_filter); |
|
316 | 309 |
|
317 | 310 |
# Associate table with model |
318 | 311 |
croak "Table name is duplicated " . _subname |
... | ... |
@@ -1449,8 +1442,8 @@ sub apply_filter { |
1449 | 1442 |
my $self = shift; |
1450 | 1443 |
|
1451 | 1444 |
warn "apply_filter is DEPRECATED! " . |
1452 |
- "use type_rule method, DBIx::Custom::Result filter method, " . |
|
1453 |
- "and DBIx::Custom::Model result_filter method instead"; |
|
1445 |
+ "use type_rule method and DBIx::Custom::Result filter method, " . |
|
1446 |
+ "instead"; |
|
1454 | 1447 |
|
1455 | 1448 |
return $self->_apply_filter(@_); |
1456 | 1449 |
} |
... | ... |
@@ -12,7 +12,6 @@ has [qw/dbi name table view/], |
12 | 12 |
table_alias => sub { {} }, |
13 | 13 |
columns => sub { [] }, |
14 | 14 |
filter => sub { [] }, |
15 |
- result_filter => sub { [] }, |
|
16 | 15 |
join => sub { [] }, |
17 | 16 |
type => sub { [] }, |
18 | 17 |
primary_key => sub { [] }; |
... | ... |
@@ -173,16 +172,6 @@ Join clause, this is used as C<select()>'s C<join> option. |
173 | 172 |
Foreign key, this is used as C<primary_key> of C<insert_at>,C<update_at()>, |
174 | 173 |
C<delete_at()>,C<select_at()>. |
175 | 174 |
|
176 |
-=head2 C<result_filter> EXPERIMENTAL |
|
177 |
- |
|
178 |
- my $dbi = $model->result_filter |
|
179 |
- $model = $model->result_filter( |
|
180 |
- title => sub { ... }, |
|
181 |
- author => sub { ... } |
|
182 |
- ); |
|
183 |
- |
|
184 |
-This filter is applied when L<DBIx::Custom>'s C<include_model()> or C<create_model> is called. |
|
185 |
- |
|
186 | 175 |
=head2 C<table> |
187 | 176 |
|
188 | 177 |
my $table = $model->table; |
... | ... |
@@ -2863,13 +2863,10 @@ $dbi->type_rule( |
2863 | 2863 |
); |
2864 | 2864 |
$dbi->insert({key1 => 2}, table => 'table1'); |
2865 | 2865 |
$result = $dbi->select(table => 'table1'); |
2866 |
-$result->filter(key1 => sub { $_[0] * 3}); |
|
2866 |
+$result->filter(key1 => sub { $_[0] * 3 }); |
|
2867 | 2867 |
is($result->one->{key1}, 6); |
2868 |
-$result = $dbi->select(table => 'table1'); |
|
2869 |
-$result->filter(key1 => sub { $_[0] * 3}); |
|
2870 |
-is($result->fetch->[0], 6); |
|
2871 | 2868 |
|
2872 |
-test 'result_filter'; |
|
2869 |
+test 'separator'; |
|
2873 | 2870 |
$dbi = DBIx::Custom->connect($NEW_ARGS->{0}); |
2874 | 2871 |
$dbi->execute($CREATE_TABLE->{0}); |
2875 | 2872 |
$dbi->execute($CREATE_TABLE->{2}); |
... | ... |
@@ -2880,15 +2877,9 @@ $dbi->create_model( |
2880 | 2877 |
'left outer join table2 on table1.key1 = table2.key1' |
2881 | 2878 |
], |
2882 | 2879 |
primary_key => ['key1'], |
2883 |
- result_filter => { |
|
2884 |
- key1 => sub { $_[0] * 2 } |
|
2885 |
- } |
|
2886 | 2880 |
); |
2887 | 2881 |
$model2 = $dbi->create_model( |
2888 | 2882 |
table => 'table2', |
2889 |
- result_filter => [ |
|
2890 |
- [qw/key1 key3/] => sub { $_[0] * 3 } |
|
2891 |
- ] |
|
2892 | 2883 |
); |
2893 | 2884 |
$dbi->setup_model; |
2894 | 2885 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
... | ... |
@@ -2902,8 +2893,8 @@ $result = $model->select( |
2902 | 2893 |
where => {'table1.key1' => 1} |
2903 | 2894 |
); |
2904 | 2895 |
is_deeply($result->one, |
2905 |
- {key1 => 2, key2 => 2, 'table2.key1' => 3, 'table2.key3' => 9}); |
|
2906 |
-is_deeply($model2->select->one, {key1 => 3, key3 => 9}); |
|
2896 |
+ {key1 => 1, key2 => 2, 'table2.key1' => 1, 'table2.key3' => 3}); |
|
2897 |
+is_deeply($model2->select->one, {key1 => 1, key3 => 3}); |
|
2907 | 2898 |
|
2908 | 2899 |
$dbi->separator('__'); |
2909 | 2900 |
$model = $dbi->model('table1'); |
... | ... |
@@ -2915,8 +2906,8 @@ $result = $model->select( |
2915 | 2906 |
where => {'table1.key1' => 1} |
2916 | 2907 |
); |
2917 | 2908 |
is_deeply($result->one, |
2918 |
- {key1 => 2, key2 => 2, 'table2__key1' => 3, 'table2__key3' => 9}); |
|
2919 |
-is_deeply($model2->select->one, {key1 => 3, key3 => 9}); |
|
2909 |
+ {key1 => 1, key2 => 2, 'table2__key1' => 1, 'table2__key3' => 3}); |
|
2910 |
+is_deeply($model2->select->one, {key1 => 1, key3 => 3}); |
|
2920 | 2911 |
|
2921 | 2912 |
$dbi->separator('-'); |
2922 | 2913 |
$model = $dbi->model('table1'); |
... | ... |
@@ -2928,8 +2919,8 @@ $result = $model->select( |
2928 | 2919 |
where => {'table1.key1' => 1} |
2929 | 2920 |
); |
2930 | 2921 |
is_deeply($result->one, |
2931 |
- {key1 => 2, key2 => 2, 'table2-key1' => 3, 'table2-key3' => 9}); |
|
2932 |
-is_deeply($model2->select->one, {key1 => 3, key3 => 9}); |
|
2922 |
+ {key1 => 1, key2 => 2, 'table2-key1' => 1, 'table2-key3' => 3}); |
|
2923 |
+is_deeply($model2->select->one, {key1 => 1, key3 => 3}); |
|
2933 | 2924 |
|
2934 | 2925 |
|
2935 | 2926 |
test 'filter_off'; |
... | ... |
@@ -2943,45 +2934,13 @@ $dbi->create_model( |
2943 | 2934 |
'left outer join table2 on table1.key1 = table2.key1' |
2944 | 2935 |
], |
2945 | 2936 |
primary_key => ['key1'], |
2946 |
- result_filter => { |
|
2947 |
- key1 => sub { $_[0] * 2 } |
|
2948 |
- }, |
|
2949 |
-); |
|
2950 |
-$model2 = $dbi->create_model( |
|
2951 |
- table => 'table2', |
|
2952 |
- result_filter => [ |
|
2953 |
- [qw/key1 key3/] => sub { $_[0] * 3 } |
|
2954 |
- ] |
|
2955 | 2937 |
); |
2956 | 2938 |
$dbi->setup_model; |
2957 | 2939 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2958 |
-$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3}); |
|
2959 | 2940 |
$model = $dbi->model('table1'); |
2960 |
-$result = $model->select( |
|
2961 |
- column => [ |
|
2962 |
- $model->mycolumn, |
|
2963 |
- {table2 => [qw/key1 key3/]} |
|
2964 |
- ], |
|
2965 |
- where => {'table1.key1' => 1} |
|
2966 |
-); |
|
2967 |
-$result->filter_off(1); |
|
2968 |
-$result->end_filter(key1 => sub { $_[0] * 5}); |
|
2969 |
-is_deeply($result->one, |
|
2970 |
- {key1 => 1, key2 => 2, 'table2.key1' => 1, 'table2.key3' => 3}); |
|
2971 |
- |
|
2972 |
-$result = $model->select( |
|
2973 |
- column => [ |
|
2974 |
- $model->mycolumn, |
|
2975 |
- {table2 => [qw/key1 key3/]} |
|
2976 |
- ], |
|
2977 |
- where => {'table1.key1' => 1} |
|
2978 |
-); |
|
2979 |
-$result->filter_off(1); |
|
2980 |
-$result->end_filter(key1 => sub { $_[0] * 5}); |
|
2981 |
- |
|
2982 |
-is_deeply($result->fetch_first, |
|
2983 |
- [1, 2, 1, 3]); |
|
2984 |
- |
|
2941 |
+$result = $model->select(column => 'key1'); |
|
2942 |
+$result->filter(key1 => sub { $_[0] * 2 }); |
|
2943 |
+is_deeply($result->one, {key1 => 2}); |
|
2985 | 2944 |
|
2986 | 2945 |
test 'available_date_type'; |
2987 | 2946 |
$dbi = DBIx::Custom->connect($NEW_ARGS->{0}); |