1package App::Netdisco::Util::ExpandParams;
2use base qw/CGI::Expand/;
3
4use strict;
5use warnings;
6
7sub max_array {0}
8sub separator {'.[]'}
9
10sub split_name {
11    my $class = shift;
12    my $name  = shift;
13    $name =~ /^ ([^\[\]\.]+) /xg;
14    my @segs = $1;
15    push @segs, ( $name =~ / \G (?: \[ ([^\[\]\.]+) \] ) /xg );
16    return @segs;
17}
18
19sub join_name {
20    my $class = shift;
21    my ( $first, @segs ) = @_;
22    return $first unless @segs;
23    return "$first\[" . join( '][', @segs ) . "]";
24}
25
261;
27
28__END__
29
30=head1 NAME
31
32App::Netdisco::Util::ExpandParams
33
34=head1 DESCRIPTION
35
36CGI::Expand subclass with Rails like tokenization for parameters passed
37during DataTables server-side processing.
38
39=cut
40