File Coverage

File:blib/lib/MySQL/Util/Lite/Column.pm
Coverage:48.9%

linestmtbrancondsubcode
1package MySQL::Util::Lite::Column;
2
3our $VERSION = '0.01';
4
5
1
1
1
use Modern::Perl;
6
1
1
1
use Moose;
7
1
1
1
use namespace::autoclean;
8
1
1
1
use Method::Signatures;
9
1
1
1
use Data::Printer alias => 'pdump';
10
11has name => (
12        is => 'ro',
13        isa => 'Str',
14        required => 1,
15);
16
17has table_name => (
18        is => 'ro',
19        isa => 'Str',
20        required => 1,
21);
22
23has schema_name => (
24        is => 'ro',
25        isa => 'Str',
26        required => 1,
27);
28
29has key => (
30        is => 'ro',
31        isa => 'Str|Undef',
32);
33
34has default => (
35        is => 'ro',
36        isa => 'Str|Undef',
37);
38
39has type => (
40        is => 'ro',
41        isa => 'Str',
42        required => 1,
43);
44
45has is_null => (
46        is => 'ro',
47        isa => 'Bool',
48        required => 1,
49);
50
51has is_autoinc => (
52        is => 'ro',
53        isa => 'Bool',
54        default => 0,
55);
56
57
1
0
0
method get_moose_type {
58
59
0
        my $str;
60
0
        my $type = $self->type;
61
62
0
        if ( $type =~ /varchar/i ) {
63
0
                $str = 'Str|HashRef';
64        }
65        elsif ( $type =~ /timestamp/i ) {
66
0
                $str = 'Str|HashRef';
67        }
68        elsif ( $type =~ /enum/i ) {
69
0
                $str = 'Str|HashRef';
70        }
71        else {
72
0
                $str = 'Num|HashRef';
73        }
74
75
0
        if ( $self->is_null ) {
76
0
                $str .= '|Undef';
77        }
78
79
0
        return $str;
80}
81
821;