+ my $handlers = _registered_handlers($class);
+ map { push @{ $handlers->{$_} }, $additional_handlers{$_} if $additional_handlers{$_} } keys %$handlers;
+}
+
+sub get_models_url_params {
+ my ($class, $sub_name_or_code) = @_;
+
+ my $code = (ref($sub_name_or_code) || '') eq 'CODE' ? $sub_name_or_code : sub { shift->$sub_name_or_code(@_) };
+ my $callback = sub {
+ my ($self, %params) = @_;
+ my @additional_params = $code->($self);
+ return (
+ %params,
+ (scalar(@additional_params) == 1) && (ref($additional_params[0]) eq 'HASH') ? %{ $additional_params[0] } : @additional_params,
+ );
+ };
+
+ push @{ _registered_handlers($class)->{callback} }, $callback;