Pg: preserve_case mode
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / Utils.pm
1 package # hide from PAUSE
2     DBIx::Class::Schema::Loader::Utils;
3
4 use strict;
5 use warnings;
6 use Exporter 'import';
7
8 our @EXPORT_OK = qw/split_name/;
9
10 use constant BY_CASE_TRANSITION =>
11     qr/(?<=[[:lower:]\d])[\W_]*(?=[[:upper:]])|[\W_]+/;
12
13 use constant BY_NON_ALPHANUM =>
14     qr/[\W_]+/;
15
16 sub split_name($) {
17     my $name = shift;
18
19     split $name =~ /[[:upper:]]/ && $name =~ /[[:lower:]]/ ? BY_CASE_TRANSITION : BY_NON_ALPHANUM, $name;
20 }
21
22 1;
23 # vim:et sts=4 sw=4 tw=0: