- removed EXPERIMENTAL map_param method from DBIx...
...::Custom
| ... | ... | @@ -1,4 +1,5 @@ | 
| 1 | 1 | 0.1723 | 
| 2 | + - removed EXPERIMENTAL map_param method from DBIx::Custom | |
| 2 | 3 | - removed EXPERIMENTAL flag from the following DBIx::Custom::Result mehotds | 
| 3 | 4 | filter_on, type_rule, type_rule_off, type_rule_on, type_rule1_off, | 
| 4 | 5 | type_rule1_on, type_rule2_off, type_rule2_on | 
| ... | ... | @@ -6,11 +7,12 @@ | 
| 6 | 7 | sqlfilter, type_rule_off, type_rule1_off, type_rule2_off, | 
| 7 | 8 | table_alias, wrap | 
| 8 | 9 | - removed EXPERIMENTAL flag from DBIx::Custom::Order | 
| 9 | - - removed EXPERIMETNAL flag from the following DBIx::Custom mehtods | |
| 10 | + - removed EXPERIMETNAL flag from the following DBIx::Custom methods | |
| 10 | 11 | exclude_table, user_column_info, | 
| 11 | 12 | user_table_info, available_datatype, available_typename, | 
| 12 | 13 | assign_param, count, get_column_info, get_table_info | 
| 13 | - order, show_datatype, show_typename methods, type_rule | |
| 14 | + order, show_datatype, show_typename methods, type_rule, | |
| 15 | + mapper | |
| 14 | 16 | - added EXPERIMENTAL update_timestamp method to DBIx::Custom | 
| 15 | 17 | - added EXPERIMENTAL insert_timestamp method to DBIx::Custom | 
| 16 | 18 | - removed EXPERIMENTAL timestamp attribute from DBIx::Custom | 
| ... | ... | @@ -751,48 +751,6 @@ sub mapper { | 
| 751 | 751 | return DBIx::Custom::Mapper->new(@_); | 
| 752 | 752 | } | 
| 753 | 753 |  | 
| 754 | -sub map_param { | |
| 755 | - my $self = shift; | |
| 756 | - my $param = shift; | |
| 757 | - my %map = @_; | |
| 758 | - | |
| 759 | - # Mapping | |
| 760 | -    my $map_param = {}; | |
| 761 | -    foreach my $key (keys %map) { | |
| 762 | - my $value_cb; | |
| 763 | - my $condition; | |
| 764 | - my $map_key; | |
| 765 | - | |
| 766 | - # Get mapping information | |
| 767 | -        if (ref $map{$key} eq 'ARRAY') { | |
| 768 | -            foreach my $some (@{$map{$key}}) { | |
| 769 | - $map_key = $some unless ref $some; | |
| 770 | -                $condition = $some->{if} if ref $some eq 'HASH'; | |
| 771 | - $value_cb = $some if ref $some eq 'CODE'; | |
| 772 | - } | |
| 773 | - } | |
| 774 | -        else { | |
| 775 | -            $map_key = $map{$key}; | |
| 776 | - } | |
| 777 | -        $value_cb ||= sub { $_[0] }; | |
| 778 | -        $condition ||= sub { defined $_[0] && length $_[0] }; | |
| 779 | - | |
| 780 | - # Map parameter | |
| 781 | - my $value; | |
| 782 | -        if (ref $condition eq 'CODE') { | |
| 783 | -            $map_param->{$map_key} = $value_cb->($param->{$key}) | |
| 784 | -              if $condition->($param->{$key}); | |
| 785 | - } | |
| 786 | -        elsif ($condition eq 'exists') { | |
| 787 | -            $map_param->{$map_key} = $value_cb->($param->{$key}) | |
| 788 | -              if exists $param->{$key}; | |
| 789 | - } | |
| 790 | -        else { croak qq/Condition must be code reference or "exists" / . _subname } | |
| 791 | - } | |
| 792 | - | |
| 793 | - return $map_param; | |
| 794 | -} | |
| 795 | - | |
| 796 | 754 |  sub merge_param { | 
| 797 | 755 | my ($self, @params) = @_; | 
| 798 | 756 |  | 
| ... | ... | @@ -2918,60 +2876,12 @@ See L<DBIx::Custom::Model> to know model features. | 
| 2918 | 2876 | Parameter for timestamp columns when C<insert> method is executed | 
| 2919 | 2877 | with C<timestamp> option. | 
| 2920 | 2878 |  | 
| 2921 | -=head2 C<mapper EXPERIMETNAL> | |
| 2879 | +=head2 C<mapper> | |
| 2922 | 2880 |  | 
| 2923 | 2881 | my $mapper = $dbi->mapper(param => $param); | 
| 2924 | 2882 |  | 
| 2925 | 2883 | Create a new L<DBIx::Custom::Mapper> object. | 
| 2926 | 2884 |  | 
| 2927 | -=head2 C<map_param> EXPERIMENTAL | |
| 2928 | - | |
| 2929 | - my $map_param = $dbi->map_param( | |
| 2930 | -        {id => 1, authro => 'Ken', price => 1900}, | |
| 2931 | - 'id' => 'book.id', | |
| 2932 | -        'author' => ['book.author' => sub { '%' . $_[0] . '%' }], | |
| 2933 | - 'price' => [ | |
| 2934 | -            'book.price', {if => sub { length $_[0] }} | |
| 2935 | - ] | |
| 2936 | - ); | |
| 2937 | - | |
| 2938 | -Map paramters to other key and value. First argument is original | |
| 2939 | -parameter. this is hash reference. Rest argument is mapping. | |
| 2940 | -By default, Mapping is done if the value length is not zero. | |
| 2941 | - | |
| 2942 | -=over 4 | |
| 2943 | - | |
| 2944 | -=item Key mapping | |
| 2945 | - | |
| 2946 | - 'id' => 'book.id' | |
| 2947 | - | |
| 2948 | -This is only key mapping. Value is same as original one. | |
| 2949 | - | |
| 2950 | -    (id => 1) is mapped to ('book.id' => 1) if value length is not zero. | |
| 2951 | - | |
| 2952 | -=item Key and value mapping | |
| 2953 | - | |
| 2954 | -    'author' => ['book.author' => sub { '%' . $_[0] . '%' }] | |
| 2955 | - | |
| 2956 | -This is key and value mapping. Frist element of array reference | |
| 2957 | -is mapped key name, second element is code reference to map the value. | |
| 2958 | - | |
| 2959 | -    (author => 'Ken') is mapped to ('book.author' => '%Ken%') | |
| 2960 | - if value length is not zero. | |
| 2961 | - | |
| 2962 | -=item Condition | |
| 2963 | - | |
| 2964 | -    'price' => ['book.price', {if => 'exists'}] | |
| 2965 | -    'price' => ['book.price', sub { '%' . $_[0] . '%' }, {if => 'exists'}] | |
| 2966 | -    'price' => ['book.price', {if => sub { defined shift }}] | |
| 2967 | - | |
| 2968 | -If you need condition, you can sepecify it. this is code reference | |
| 2969 | -or 'exists'. By default, condition is the following one. | |
| 2970 | - | |
| 2971 | -    sub { defined $_[0] && length $_[0] } | |
| 2972 | - | |
| 2973 | -=back | |
| 2974 | - | |
| 2975 | 2885 | =head2 C<merge_param> | 
| 2976 | 2886 |  | 
| 2977 | 2887 |      my $param = $dbi->merge_param({key1 => 1}, {key1 => 1, key2 => 2}); | 
| ... | ... | @@ -2873,49 +2873,6 @@ $param = $dbi->mapper(param => {id => 'a', author => 'b', price => 'c'}, pass => | 
| 2873 | 2873 | ->map(price => 'book.price'); | 
| 2874 | 2874 |  is_deeply($param, {id => 'a', author => 'b', 'book.price' => 'c'}); | 
| 2875 | 2875 |  | 
| 2876 | -test 'map_param'; | |
| 2877 | -$dbi = DBIx::Custom->connect; | |
| 2878 | -$param = $dbi->map_param( | |
| 2879 | -    {id => 1, author => 'Ken', price => 1900}, | |
| 2880 | - id => "$table1.id", | |
| 2881 | -    author => ["$table1.author", sub { '%' . $_[0] . '%' }], | |
| 2882 | -    price => ["$table1.price", {if => sub { $_[0] eq 1900 }}] | |
| 2883 | -); | |
| 2884 | -is_deeply($param, {"$table1.id" => 1, "$table1.author" => '%Ken%', | |
| 2885 | - "$table1.price" => 1900}); | |
| 2886 | - | |
| 2887 | -$param = $dbi->map_param( | |
| 2888 | -    {id => 0, author => 0, price => 0}, | |
| 2889 | - id => "$table1.id", | |
| 2890 | -    author => ["$table1.author", sub { '%' . $_[0] . '%' }], | |
| 2891 | -    price => ["$table1.price", sub { '%' . $_[0] . '%' }, | |
| 2892 | -      {if => sub { $_[0] eq 0 }}] | |
| 2893 | -); | |
| 2894 | -is_deeply($param, {"$table1.id" => 0, "$table1.author" => '%0%', "$table1.price" => '%0%'}); | |
| 2895 | - | |
| 2896 | -$param = $dbi->map_param( | |
| 2897 | -    {id => '', author => '', price => ''}, | |
| 2898 | - id => "$table1.id", | |
| 2899 | -    author => ["$table1.author", sub { '%' . $_[0] . '%' }], | |
| 2900 | -    price => ["$table1.price", sub { '%' . $_[0] . '%' }, | |
| 2901 | -      {if => sub { $_[0] eq 1 }}] | |
| 2902 | -); | |
| 2903 | -is_deeply($param, {}); | |
| 2904 | - | |
| 2905 | -$param = $dbi->map_param( | |
| 2906 | -    {id => undef, author => undef, price => undef}, | |
| 2907 | - id => "$table1.id", | |
| 2908 | -    price => ["$table1.price", {if => 'exists'}] | |
| 2909 | -); | |
| 2910 | -is_deeply($param, {"$table1.price" => undef}); | |
| 2911 | - | |
| 2912 | -$param = $dbi->map_param( | |
| 2913 | -    {price => 'a'}, | |
| 2914 | -    id => ["$table1.id", {if => 'exists'}], | |
| 2915 | -    price => ["$table1.price", sub { '%' . $_[0] }, {if => 'exists'}] | |
| 2916 | -); | |
| 2917 | -is_deeply($param, {"$table1.price" => '%a'}); | |
| 2918 | - | |
| 2919 | 2876 | test 'order'; | 
| 2920 | 2877 | $dbi = DBIx::Custom->connect; | 
| 2921 | 2878 |  eval { $dbi->execute("drop table $table1") }; |