Changeset 21768

Show
Ignore:
Timestamp:
10/21/08 13:09:12 (5 years ago)
Author:
ktat
Message:

remove normalize, camelize and camelize_children.
Instead of them, new functions, dir_case and subdir_case.

Location:
lang/perl/Helper-Simple/trunk
Files:
1 removed
8 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Helper-Simple/trunk/MANIFEST

    r21688 r21768  
    1010t/02-helper-one-file.t 
    1111t/03-create_files.t 
    12 t/04-create_files2.t 
     12t/03-create_files2.t 
     13t/04-check_created_files_content.t 
     14t/04-check_created_files.t 
     15t/04-check_created_files2.t 
    1316t/boilerplate.t 
    1417t/pod-coverage.t 
  • lang/perl/Helper-Simple/trunk/lib/Helper/Simple.pm

    r21710 r21768  
    2323use Clone (); 
    2424 
    25 our @EXPORT_FUNCS = qw/file copy camelize normalize my_var 
     25our @EXPORT_FUNCS = qw/file copy my_var dir_case subdir_case 
    2626                       template_option template_tags var default_var 
    27                        download dl camelize_children 
     27                       download dl 
    2828                      /; 
    2929our %DATA = 
     
    4343    default => 
    4444    { 
    45      normalize       => undef, 
     45     asis            => undef, 
    4646     my_vars         => {}, 
    4747     vars            => {}, 
     
    120120sub root { $DATA{_ROOT_}; } 
    121121 
    122 sub _parent { 
    123   my ($self) = @_; 
    124  
    125   my $root_class = $self->root_class; 
    126   my $pkg = ref $self || $self; 
    127   $pkg =~ s/::\w+$//; 
    128   $pkg = $root_class if $pkg !~/^${root_class}::/; 
    129  
    130   return $self->pkg($pkg); 
    131 } 
    132  
    133122sub root_dir { 
    134123  my ($class, $dir) = @_; 
     
    145134} 
    146135 
    147 sub camelize { 
    148   my ($self) = _here(@_); 
    149   $self->{normalize} = 0; 
    150   return ((! $self->_normalize) || 0); 
    151 } 
    152  
    153 sub _camelize { 
    154   my ($self) = @_; 
    155   return ((! $self->_normalize) || 0); 
    156 } 
    157  
    158 sub normalize { 
    159   my ($self, $v) = _here(@_); 
    160   $self->{normalize} = defined $v ? $v : 1; 
    161   return $self->_normalize; 
    162 } 
    163  
    164 sub _normalize { 
     136sub dir_case { 
    165137  my ($self, $v) = _here(@_); 
    166138  if (defined $v) { 
    167     return $self->{normalize} = $v; 
     139    if ($v eq 'lc') { 
     140      $self->normalize; 
     141    } elsif ($v eq 'asis') { 
     142      $self->asis; 
     143    } else { 
     144      Carp::croak("dircase lc or asis") 
     145    } 
     146  } else { 
     147    return $self->_normalize ? 'lc' : 'asis'; 
     148  } 
     149} 
     150 
     151sub subdir_case { 
     152  my ($self, $v) = _here(@_); 
     153  if (defined $v) { 
     154    if ($v eq 'lc') { 
     155      $self->asis_children(0); 
     156    } elsif ($v eq 'asis') { 
     157      $self->asis_children(1); 
     158    } else { 
     159      Carp::croak("dircase lc or asis") 
     160    } 
     161  } else { 
     162    return $self->_asis_children ? 'lc' : 'asis'; 
     163  } 
     164} 
     165 
     166sub normalize { 
     167  my ($self, $v) = @_; 
     168  $self->{asis} = defined $v ? (! $v) || 0 : 0; 
     169  return ((! $self->_asis) || 0); 
     170} 
     171 
     172sub _normalize { 
     173  my ($self) = @_; 
     174  return ((! $self->_asis) || 0); 
     175} 
     176 
     177sub asis { 
     178  my ($self, $v) = @_; 
     179  $self->{asis} = defined $v ? $v : 1; 
     180  return $self->_asis; 
     181} 
     182 
     183sub _asis { 
     184  my ($self, $v) = @_; 
     185  if (defined $v) { 
     186    return $self->{asis} = $v; 
    168187  } else { 
    169188    my $v; 
     
    172191       sub { 
    173192         my ($o, $pkg, $v) = @_; 
    174          if (defined $o->{normalize}) { 
    175            $$v = $o->{normalize}; 
     193         if (defined $o->{asis}) { 
     194           $$v = $o->{asis}; 
    176195         } 
    177196       }, \$v 
    178197      ); 
     198 
    179199    return defined $v ? $v : 1; 
    180200  } 
    181201} 
    182202 
    183 sub camelize_children { 
    184   my ($self) = _here(@_); 
    185   $self->_camelize_children(1); 
    186 } 
    187  
    188 sub _camelize_children { 
     203sub asis_children { 
    189204  my ($self, $v) = @_; 
    190  
    191   if (defined $v) { 
    192     return $self->{camelize_children} = $v; 
    193   } else { 
    194     my $v; 
    195     $self->_inherit_resolver 
    196       ( 
    197        sub { 
    198          my ($o, $pkg, $v) = @_; 
    199          if (defined $o->{camelize_children}) { 
    200            $$v = $o->{camelize_children}; 
    201          } 
    202        }, \$v 
    203       ); 
    204     return defined $v ? $v : 0; 
    205   } 
     205  return $self->{asis_children} = defined $v ? $v : 1; 
    206206} 
    207207 
     
    481481  if (my $name = ref $proto) { 
    482482    my $path = ""; 
    483     my $camelize = 0; 
     483    my $asis = 1; 
     484    my $asis_children = 0; 
    484485    $proto->_inherit_resolver 
    485486      ( 
     
    488489         my $dir_name = $pkg_name; 
    489490         if (blessed $o) { 
    490            if (blessed $o->_parent) { 
    491              $camelize ||= $o->_parent->_camelize_children; 
     491           $asis = $o->{asis} if defined $o->{asis}; 
     492 
     493           if (! defined $o->{asis}) { 
     494             $asis = $asis_children; 
    492495           } 
    493            if ($o->{normalize}) { 
    494              $camelize = 0; 
    495              $o->_camelize_children(0); 
     496           if (defined $o->{asis_children}) { 
     497             $asis_children = $o->{asis_children}; 
     498           } else { 
     499             $asis_children = $asis; 
    496500           } 
    497501         } 
    498          if (! $camelize and (! ref $o or (ref $o and $o->_normalize))) { 
     502         if (! $asis) { 
    499503           $dir_name = $proto->_normalization($pkg_name); 
    500504         } 
     
    512516sub _normalization { 
    513517  my ($self, $name) = @_; 
    514   if ($self->_normalize == 2) { 
    515     $name =~ s/([A-Z][^A-Z])/_$1/g; 
    516     $name =~ s/^_//; 
    517   } 
    518518  return lc $name; 
    519519} 
     
    808808like this, you don't need to call 'use Helper::Simple' except your helper root module. 
    809809 
    810 =head2 camelize 
    811  
    812  camelize; 
    813  
    814 This is shortcut of the following. see C<normalize>. 
    815  
    816  normalize 0; 
    817  
    818 =head2 normalize 
    819  
    820  normalize 0; 
    821  normalize 1; # default 
    822  normalize 2; 
    823  
    824 This change behavior to change pakcage name to directory name. 
    825  
    826 This is inheritable setting. Namespaces under the namespace which this function is used, 
    827 same setting is applied. 
    828  
    829 Example; 
    830  
    831 When normalize is 1 (default behavior) 
    832  
    833  NormaLize -> normalize 
    834  
    835 When normalize is 2 
    836  
    837  NormaLize -> norma_lize 
    838  
    839 When normalize is 0 
    840  
    841  NormaLize -> NormaLize 
    842  
    843  
    844 =head2 camelize_children 
    845  
    846  camelize_children; 
    847  
    848 This camelize effects sub directories. 
    849  
    850 For example; 
    851  
    852  package MyApp::Lib; # this directory is lib 
    853   
    854  camelize_children; 
    855   
    856  package MyApp::Lib::Hoge; # this directory is lib/Hoge 
    857  
    858  file { X.pm => "package X;\n1;"}; 
    859  
    860810=head2 file 
    861811 
     
    969919If you change this, the change effects only the namespaces. 
    970920 
     921=head2 dir_case 
     922 
     923 dir_case 'asis'; # default 
     924 dir_case 'lc'; 
     925 
     926This changes behavior to change pakcage name to directory name. 
     927In dfault, Helper::Simple doesn't change package name. 
     928So if you want lower case directory name, you'd beter use lower case to package name. 
     929 
     930For example (base module name is YourApp::Helper); 
     931 
     932 package YourApp::Helper::lib; 
     933 # ... 
     934 1; 
     935  
     936 package YourApp::Helper::lib::YourApp; 
     937 # ... 
     938 1; 
     939 
     940These directories are; 
     941 
     942 lib/ 
     943 lib/YourApp/ 
     944 
     945If you don't like lower case in package name, you can use this function. 
     946 
     947 package YourApp::Helper::Lib; 
     948 
     949 dir_case 'lc'; 
     950 subdir_case 'asis'; 
     951 # ... 
     952 1; 
     953  
     954 package YourApp::Helper::Lib::YourApp; 
     955 # ... 
     956 1; 
     957 
     958These directories are; 
     959 
     960 lib/ 
     961 lib/YourApp/ 
     962 
     963In YourApp::Hlper::Lib, C<dir_case 'lc'> is used, 
     964so package name is changed to lower case. 
     965In YourApp::Hlper::Lib, C<subdir_case 'asis'> is used, 
     966this effects sub modules of the module calling C<subdir_case 'asis'>. 
     967 
     968This is inheritable setting. Namespaces under the namespace which this function is used, 
     969same setting is applied. 
     970 
     971=head2 subdir_case 
     972 
     973 subdir_case 'lc'; 
     974 subdir_case 'asis'; 
     975 
     976This effects sub directories. 
     977 
     978For example; 
     979 
     980 package MyApp; 
     981  
     982 dir_case 'lc'; 
     983  
     984 package MyApp::Lib; # this directory is lib 
     985  
     986 sub_dircase 'asis'; 
     987  
     988 package MyApp::Lib::Hoge; # this directory is lib/Hoge 
     989 
     990This is inheritable setting. Namespaces under the namespace which this function is used, 
     991same setting is applied. 
     992 
     993See also C<dir_case>. 
     994 
    971995=head1 SPECIAL FUNCTION 
    972996 
     
    9781002It is not recommended to use. 
    9791003 
    980  package YourHelper::Lib::Hoge; 
     1004 package YourHelper::Llib::Hoge; 
    9811005  
    982  here->dir; # returns "lib/hoge/" 
     1006 here->dir; # returns "lib/Hoge/" 
    9831007 
    9841008=head1 AUTHOR 
    9851009 
    986 Ktat, C<< <KTAT at cpan.org> >> 
     1010Ktat, C<< <ktat at cpan.org> >> 
    9871011 
    9881012=head1 BUGS 
  • lang/perl/Helper-Simple/trunk/t/01-helper-separate-files.t

    r21710 r21768  
    5353  admin  => 1, 
    5454} 
    55 === camelize default 
     55=== asis default 
    5656--- i 
    5757package MyHelper; 
    58 $_ = here->_camelize 
     58$_ = here->_asis 
    5959--- o 
    60600 
     
    6565--- o 
    66661 
    67 === camelize specified 
     67=== asis specified 
    6868--- i 
    6969package MyHelper::Doc::CameLize; 
    70 $_ = here->_camelize 
     70$_ = here->_asis 
    7171--- o 
    72721 
     
    8080--- i 
    8181package MyHelper::Doc::CameLize::CaMeLiZe; 
    82 $_ = here->_camelize 
     82$_ = here->_asis 
    8383--- o 
    84841 
     
    165165--- i 
    166166package MyHelper::Doc::CameLize; 
    167 here->dir =~ m{.+(doc/.+$)}; 
     167here->dir =~ m{.+(doc/.+$)}i; 
    168168$1; 
    169169--- o 
     
    172172--- i 
    173173package MyHelper::Doc::CameLize::CaMeLiZe; 
    174 here->dir =~ m{.+(doc/.+$)}; 
     174here->dir =~ m{.+(doc/.+$)}i; 
    175175$1; 
    176176--- o 
     
    179179--- i 
    180180package MyHelper::DocCamel; 
    181 here->dir =~ m{.+(doc_?camel.+)}; 
     181here->dir =~ m{.+(doc_?camel.+)}i; 
    182182$1 
    183183--- o 
     
    186186--- i 
    187187package MyHelper::Doc; 
    188 here->dir =~ m{.+(doc/$)}; 
     188here->dir =~ m{.+(doc/$)}i; 
    189189$1; 
    190190--- o 
  • lang/perl/Helper-Simple/trunk/t/04-check_created_files2.t

    r21710 r21768  
    3939--- i : -e './t/tmp2/lib/two/Y/Z/AbCde/AbCde.pm' 
    4040--- o : 1 
    41 === t/tmp2/lib/two/Y/Z/xyz/aaa/aaa.pm 
    42 --- i : -e './t/tmp2/lib/two/Y/Z/xyz/aaa/aaa.pm' 
     41=== t/tmp2/lib/two/Y/Z/Xyz/aaa/aaa.pm 
     42--- i : -e './t/tmp2/lib/two/Y/Z/Xyz/aaa/aaa.pm' 
    4343--- o : 1 
    4444=== t/tmp2/lib/two/Y.pm 
  • lang/perl/Helper-Simple/trunk/t/lib/MyHelper.pm

    r21710 r21768  
    88  var  => 'in MyHelper', 
    99}; 
     10 
     11dir_case 'lc'; 
    1012 
    1113file <<_FILES; 
  • lang/perl/Helper-Simple/trunk/t/lib/MyHelper/Doc/CameLize.pm

    r21702 r21768  
    33use strict; 
    44 
    5 normalize 0; 
     5dir_case 'asis'; 
    66copy ['./t/data/test.zip', {zip => 1, omit => 'test'}]; 
    77 
  • lang/perl/Helper-Simple/trunk/t/lib/MyHelper2/Test.pm

    r21710 r21768  
    22 
    33use Helper::Simple; 
     4 
     5dir_case 'lc'; 
    46 
    57copy 't/lib/'; 
     
    4345package MyHelper2::Test::Lib::One; 
    4446 
    45 camelize; 
     47dir_case 'asis'; 
    4648 
    4749file <<_FILES; 
     
    5456package MyHelper2::Test::Lib::X::Y; 
    5557 
    56 camelize; 
     58dir_case 'asis'; 
    5759 
    5860file <<_FILES; 
     
    6567package MyHelper2::Test::Lib::Two; 
    6668 
    67 camelize_children; 
     69subdir_case 'asis'; 
    6870 
    6971var { 
     
    109111package MyHelper2::Test::Lib::Two::Y::Z::Xyz; 
    110112 
    111 normalize; 
     113subdir_case 'lc'; 
    112114 
    113115package MyHelper2::Test::Lib::Two::Y::Z::Xyz::AAA; 
  • lang/perl/Helper-Simple/trunk/t/pod-coverage.t

    r21688 r21768  
    55plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; 
    66all_pod_coverage_ok( 
    7     {also_private => [qw/appname dir mk_dir pkg root root_class root_dir default_var/],} 
     7    {also_private => [qw/appname dir mk_dir pkg root root_class root_dir default_var asis asis_children normalize/],} 
    88    ); 
    99