DBIx::Custom::Model filter attribute can receive hash...
...reference
... | ... |
@@ -1,3 +1,5 @@ |
1 |
+0.1678 |
|
2 |
+ - DBIx::Custom::Model filter attribute can receive hash reference |
|
1 | 3 |
0.1677 |
2 | 4 |
- improved table search in column and join clause |
3 | 5 |
- DEPRECATED table tag. use table option. |
... | ... |
@@ -1,6 +1,6 @@ |
1 | 1 |
package DBIx::Custom; |
2 | 2 |
|
3 |
-our $VERSION = '0.1677'; |
|
3 |
+our $VERSION = '0.1678'; |
|
4 | 4 |
|
5 | 5 |
use 5.008001; |
6 | 6 |
use strict; |
... | ... |
@@ -350,9 +350,10 @@ sub create_model { |
350 | 350 |
$model->table($model_table) unless $model->table; |
351 | 351 |
|
352 | 352 |
# Apply filter |
353 |
- croak "$model_class filter must be array reference" |
|
354 |
- unless ref $model->filter eq 'ARRAY'; |
|
355 |
- $self->apply_filter($model->table, @{$model->filter}); |
|
353 |
+ my $filter = ref $model->filter eq 'HASH' |
|
354 |
+ ? [%{$model->filter}] |
|
355 |
+ : $model->filter; |
|
356 |
+ $self->apply_filter($model->table, @$filter); |
|
356 | 357 |
|
357 | 358 |
# Associate table with model |
358 | 359 |
croak "Table name is duplicated" |
... | ... |
@@ -1693,13 +1694,13 @@ and C<PrintError> option is false by default. |
1693 | 1694 |
join => [ |
1694 | 1695 |
'inner join company on book.comparny_id = company.id' |
1695 | 1696 |
], |
1696 |
- filter => [ |
|
1697 |
+ filter => { |
|
1697 | 1698 |
publish_date => { |
1698 | 1699 |
out => 'tp_to_date', |
1699 | 1700 |
in => 'date_to_tp', |
1700 | 1701 |
end => 'tp_to_displaydate' |
1701 | 1702 |
} |
1702 |
- ] |
|
1703 |
+ } |
|
1703 | 1704 |
); |
1704 | 1705 |
|
1705 | 1706 |
Create L<DBIx::Custom::Model> object and initialize model. |
... | ... |
@@ -1792,13 +1793,13 @@ filter name registerd by C<register_filter()>. |
1792 | 1793 |
# Basic |
1793 | 1794 |
$dbi->execute( |
1794 | 1795 |
$sql, |
1795 |
- filter => [ |
|
1796 |
+ filter => { |
|
1796 | 1797 |
title => sub { uc $_[0] } |
1797 | 1798 |
author => sub { uc $_[0] } |
1798 |
- ] |
|
1799 |
+ } |
|
1799 | 1800 |
); |
1800 | 1801 |
|
1801 |
- # At once |
|
1802 |
+ # At once (use array reference) |
|
1802 | 1803 |
$dbi->execute( |
1803 | 1804 |
$sql, |
1804 | 1805 |
filter => [ |
... | ... |
@@ -1809,10 +1810,10 @@ filter name registerd by C<register_filter()>. |
1809 | 1810 |
# Filter name |
1810 | 1811 |
$dbi->execute( |
1811 | 1812 |
$sql, |
1812 |
- filter => [ |
|
1813 |
+ filter => { |
|
1813 | 1814 |
title => 'upper_case', |
1814 | 1815 |
author => 'upper_case' |
1815 |
- ] |
|
1816 |
+ } |
|
1816 | 1817 |
); |
1817 | 1818 |
|
1818 | 1819 |
These filters are added to the C<out> filters, set by C<apply_filter()>. |
... | ... |
@@ -1872,13 +1873,13 @@ filter name registerd by C<register_filter()>. |
1872 | 1873 |
|
1873 | 1874 |
# Basic |
1874 | 1875 |
$dbi->delete( |
1875 |
- filter => [ |
|
1876 |
+ filter => { |
|
1876 | 1877 |
title => sub { uc $_[0] } |
1877 | 1878 |
author => sub { uc $_[0] } |
1878 |
- ] |
|
1879 |
+ } |
|
1879 | 1880 |
); |
1880 | 1881 |
|
1881 |
- # At once |
|
1882 |
+ # At once (use array reference) |
|
1882 | 1883 |
$dbi->delete( |
1883 | 1884 |
filter => [ |
1884 | 1885 |
[qw/title author/] => sub { uc $_[0] } |
... | ... |
@@ -1887,10 +1888,10 @@ filter name registerd by C<register_filter()>. |
1887 | 1888 |
|
1888 | 1889 |
# Filter name |
1889 | 1890 |
$dbi->delete( |
1890 |
- filter => [ |
|
1891 |
+ filter => { |
|
1891 | 1892 |
title => 'upper_case', |
1892 | 1893 |
author => 'upper_case' |
1893 |
- ] |
|
1894 |
+ } |
|
1894 | 1895 |
); |
1895 | 1896 |
|
1896 | 1897 |
These filters are added to the C<out> filters, set by C<apply_filter()>. |
... | ... |
@@ -2010,13 +2011,13 @@ filter name registerd by C<register_filter()>. |
2010 | 2011 |
|
2011 | 2012 |
# Basic |
2012 | 2013 |
$dbi->insert( |
2013 |
- filter => [ |
|
2014 |
+ filter => { |
|
2014 | 2015 |
title => sub { uc $_[0] } |
2015 | 2016 |
author => sub { uc $_[0] } |
2016 |
- ] |
|
2017 |
+ } |
|
2017 | 2018 |
); |
2018 | 2019 |
|
2019 |
- # At once |
|
2020 |
+ # At once (use array reference) |
|
2020 | 2021 |
$dbi->insert( |
2021 | 2022 |
filter => [ |
2022 | 2023 |
[qw/title author/] => sub { uc $_[0] } |
... | ... |
@@ -2025,10 +2026,10 @@ filter name registerd by C<register_filter()>. |
2025 | 2026 |
|
2026 | 2027 |
# Filter name |
2027 | 2028 |
$dbi->insert( |
2028 |
- filter => [ |
|
2029 |
+ filter => { |
|
2029 | 2030 |
title => 'upper_case', |
2030 | 2031 |
author => 'upper_case' |
2031 |
- ] |
|
2032 |
+ } |
|
2032 | 2033 |
); |
2033 | 2034 |
|
2034 | 2035 |
These filters are added to the C<out> filters, set by C<apply_filter()>. |
... | ... |
@@ -2390,13 +2391,13 @@ filter name registerd by C<register_filter()>. |
2390 | 2391 |
|
2391 | 2392 |
# Basic |
2392 | 2393 |
$dbi->select( |
2393 |
- filter => [ |
|
2394 |
+ filter => { |
|
2394 | 2395 |
title => sub { uc $_[0] } |
2395 | 2396 |
author => sub { uc $_[0] } |
2396 |
- ] |
|
2397 |
+ } |
|
2397 | 2398 |
); |
2398 | 2399 |
|
2399 |
- # At once |
|
2400 |
+ # At once (use array reference) |
|
2400 | 2401 |
$dbi->select( |
2401 | 2402 |
filter => [ |
2402 | 2403 |
[qw/title author/] => sub { uc $_[0] } |
... | ... |
@@ -2405,10 +2406,10 @@ filter name registerd by C<register_filter()>. |
2405 | 2406 |
|
2406 | 2407 |
# Filter name |
2407 | 2408 |
$dbi->select( |
2408 |
- filter => [ |
|
2409 |
+ filter => { |
|
2409 | 2410 |
title => 'upper_case', |
2410 | 2411 |
author => 'upper_case' |
2411 |
- ] |
|
2412 |
+ } |
|
2412 | 2413 |
); |
2413 | 2414 |
|
2414 | 2415 |
These filters are added to the C<out> filters, set by C<apply_filter()>. |
... | ... |
@@ -2547,13 +2548,13 @@ filter name registerd by C<register_filter()>. |
2547 | 2548 |
|
2548 | 2549 |
# Basic |
2549 | 2550 |
$dbi->update( |
2550 |
- filter => [ |
|
2551 |
+ filter => { |
|
2551 | 2552 |
title => sub { uc $_[0] } |
2552 | 2553 |
author => sub { uc $_[0] } |
2553 |
- ] |
|
2554 |
+ } |
|
2554 | 2555 |
); |
2555 | 2556 |
|
2556 |
- # At once |
|
2557 |
+ # At once (use array reference) |
|
2557 | 2558 |
$dbi->update( |
2558 | 2559 |
filter => [ |
2559 | 2560 |
[qw/title author/] => sub { uc $_[0] } |
... | ... |
@@ -2562,10 +2563,10 @@ filter name registerd by C<register_filter()>. |
2562 | 2563 |
|
2563 | 2564 |
# Filter name |
2564 | 2565 |
$dbi->update( |
2565 |
- filter => [ |
|
2566 |
+ filter => { |
|
2566 | 2567 |
title => 'upper_case', |
2567 | 2568 |
author => 'upper_case' |
2568 |
- ] |
|
2569 |
+ } |
|
2569 | 2570 |
); |
2570 | 2571 |
|
2571 | 2572 |
These filters are added to the C<out> filters, set by C<apply_filter()>. |
... | ... |
@@ -8,7 +8,6 @@ sub array_to_hash { |
8 | 8 |
|
9 | 9 |
return $array if ref $array eq 'HASH'; |
10 | 10 |
return unless $array; |
11 |
- return $array if ref $array eq 'HASH'; |
|
12 | 11 |
|
13 | 12 |
my $hash = {}; |
14 | 13 |
|
... | ... |
@@ -3,9 +3,9 @@ package MyModel8::table2; |
3 | 3 |
use base 'MyModel8'; |
4 | 4 |
|
5 | 5 |
__PACKAGE__->attr(filter => sub { |
6 |
- [ |
|
6 |
+ { |
|
7 | 7 |
key3 => {out => sub { $_[0] * 2}, in => sub { $_[0] * 3}, end => sub { $_[0] * 4 }} |
8 |
- ] |
|
8 |
+ } |
|
9 | 9 |
}); |
10 | 10 |
|
11 | 11 |
1; |