Add App::Netdisco::Util::ExpandParams a CGI::Expand subclass with Rails like tokenization for parameters passed during DataTables server-side processing.
This commit is contained in:
@@ -10,6 +10,7 @@ requires 'AnyEvent::DNS::EtcHosts' => 0;
|
|||||||
requires 'App::cpanminus' => 1.6108;
|
requires 'App::cpanminus' => 1.6108;
|
||||||
requires 'App::local::lib::helper' => 0.07;
|
requires 'App::local::lib::helper' => 0.07;
|
||||||
requires 'Archive::Extract' => 0;
|
requires 'Archive::Extract' => 0;
|
||||||
|
requires 'CGI::Expand' => 2.05;
|
||||||
requires 'DBD::Pg' => 0;
|
requires 'DBD::Pg' => 0;
|
||||||
requires 'DBD::SQLite' => 1.37;
|
requires 'DBD::SQLite' => 1.37;
|
||||||
requires 'DBIx::Class' => 0.08250;
|
requires 'DBIx::Class' => 0.08250;
|
||||||
|
|||||||
39
Netdisco/lib/App/Netdisco/Util/ExpandParams.pm
Normal file
39
Netdisco/lib/App/Netdisco/Util/ExpandParams.pm
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
package App::Netdisco::Util::ExpandParams;
|
||||||
|
use base qw/CGI::Expand/;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
sub max_array {0}
|
||||||
|
sub separator {'.[]'}
|
||||||
|
|
||||||
|
sub split_name {
|
||||||
|
my $class = shift;
|
||||||
|
my $name = shift;
|
||||||
|
$name =~ /^ ([^\[\]\.]+) /xg;
|
||||||
|
my @segs = $1;
|
||||||
|
push @segs, ( $name =~ / \G (?: \[ ([^\[\]\.]+) \] ) /xg );
|
||||||
|
return @segs;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub join_name {
|
||||||
|
my $class = shift;
|
||||||
|
my ( $first, @segs ) = @_;
|
||||||
|
return $first unless @segs;
|
||||||
|
return "$first\[" . join( '][', @segs ) . "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
App::Netdisco::Util::ExpandParams
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
CGI::Expand subclass with Rails like tokenization for parameters passed
|
||||||
|
during DataTables server-side processing.
|
||||||
|
|
||||||
|
=cut
|
||||||
Reference in New Issue
Block a user