Commit | Line | Data |
9ee33178 |
1 | package Data::Query::ExprBuilder::Identifier; |
2 | |
3 | use strictures 1; |
4 | |
5 | use base qw(Data::Query::ExprBuilder); |
6 | use Data::Query::Constants qw(DQ_IDENTIFIER); |
7 | |
8 | sub DESTROY { } |
9 | |
10 | sub can { |
11 | my $name = $_[1]; |
12 | sub { |
13 | return (ref($_[0])||$_[0])->new({ |
14 | expr => { |
15 | type => DQ_IDENTIFIER, |
16 | elements => [ @{$_[0]->{expr}{elements}}, $name ] |
17 | }, |
18 | }); |
19 | }; |
20 | } |
21 | |
22 | sub AUTOLOAD { |
23 | (my $auto = our $AUTOLOAD) =~ s/.*:://; |
24 | return (ref($_[0])||$_[0])->new({ |
25 | expr => { |
26 | type => DQ_IDENTIFIER, |
27 | elements => [ @{$_[0]->{expr}{elements}}, $auto ] |
28 | }, |
29 | }); |
30 | } |
31 | |
32 | 1; |