The wiki page https://github.com/kraih/mojo/wiki/Upgrading keeps a list of breaking API changes since 5.0.
On Mon, Jan 23, 2017 at 4:29 PM, Joseph Landman < [email protected]> wrote: > Answering my own question for posterity. The following code works as a > replacement: > > helper get_any_arg_types_into_hash => sub { > my $self = shift; > my $names = $self->req->params->names; > my $content; > > if (defined($names)) { > foreach my $p (@{$names}) { > $content->{$p} = $self->param($p); > } > } > return $content; > }; > > > On Monday, January 23, 2017 at 1:50:50 PM UTC-5, Joe Landman wrote: > >> Hi folks: >> >> I had written a Mojolicious::Lite app a few years ago, which had a >> helper section like this: >> >> #!/opt/scalable/bin/perl >> >> use lib "lib/"; >> use strict; >> use v5.14; >> use Mojolicious::Lite; >> >> [...] >> >> helper get_any_arg_types_into_hash => sub { >> my $self = shift; >> my @params = $self->param; >> my $content; >> >> # copy parameters into content hash >> if (@params) { >> foreach my $p (@params) { >> $content->{$p} = $self->param($p); >> } >> } >> return $content; >> }; >> >> # then we use them in various of the controller endpoints >> >> >> post '/contact' => sub { >> my $self = shift; >> my $content; >> >> $content = $self->get_any_arg_types_into_hash; >> >> # ... >> >> } >> >> So this doesn't seem to work anymore in Mojolicious 7. Specifically, the >> $self->params didn't seem to return an array of the keys of parameters. >> Could be pilot error, but I simply copied the app from another machine >> it is working on. >> >> [root@facade ~]# /opt/scalable/bin/mojo version >> CORE >> Perl (v5.18.2, linux) >> Mojolicious (5.71, Tiger Face) >> >> OPTIONAL >> EV 4.0+ (n/a) >> IO::Socket::Socks 0.64+ (n/a) >> IO::Socket::SSL 1.84+ (1.973) >> Net::DNS::Native 0.15+ (n/a) >> >> >> It was written around Mojolicious 4 time frame, and has been working >> reliably for years. But now, not so much. >> >> I still want to copy my args (all of them) into a content hash. The >> wiki docs (http://mojolicious.org/perldoc/Mojolicious/Controller#param) >> suggest that the parameter method has changed somewhat, and may be using >> stash (http://mojolicious.org/perldoc/Mojolicious/Controller#stash) for >> access depending upon a few things that I've not quite wrapped my head >> around. >> >> So ... the short version ... >> >> How do I get keys that indicate all of the parameters passed in (not >> just placeholders, but any ?key=value type things as well). >> >> This is >> >> root@newfacade:~# /opt/scalable/bin/mojo version >> CORE >> Perl (v5.22.1, linux) >> Mojolicious (7.20, Doughnut) >> >> OPTIONAL >> EV 4.0+ (n/a) >> IO::Socket::Socks 0.64+ (n/a) >> IO::Socket::SSL 1.94+ (2.043) >> Net::DNS::Native 0.15+ (n/a) >> >> >> Thanks! >> >> >> >> -- >> Joe Landman >> e: [email protected] >> t: @hpcjoe >> c: +1 734 612 4615 <(734)%20612-4615> >> w: https://scalability.org >> > -- > You received this message because you are subscribed to the Google Groups > "Mojolicious" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/mojolicious. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
