5371dab1947b1afafddb5ae0b85e630e91fd1208
[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 dumper dumper_squashed/;
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 # Stolen from Data::Dumper::Concise
23
24 sub dumper($) {
25     my $val = shift;
26
27     my $dd = Data::Dumper->new([]);
28     $dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1);
29     return $dd->Values([ $val ])->Dump;
30 }
31
32 sub dumper_squashed($) {
33     my $val = shift;
34
35     my $dd = Data::Dumper->new([]);
36     $dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1)->Indent(0);
37     return $dd->Values([ $val ])->Dump;
38 }
39
40 1;
41 # vim:et sts=4 sw=4 tw=0: