Skip to content

Commit

Permalink
use a little less code
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Jan 13, 2015
1 parent 5bf5ad8 commit 09499d4
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 38 deletions.
26 changes: 12 additions & 14 deletions lib/Mojo/Parameters.pm
Expand Up @@ -38,7 +38,17 @@ sub clone {
return $clone;
}

sub every_param { shift->_param(@_) }
sub every_param {
my ($self, $name) = @_;

my @values;
my $params = $self->params;
for (my $i = 0; $i < @$params; $i += 2) {
push @values, $params->[$i + 1] if $params->[$i] eq $name;
}

return \@values;
}

sub merge {
my $self = shift;
Expand All @@ -63,7 +73,7 @@ sub param {
return map { $self->param($_) } @$name if ref $name eq 'ARRAY';

# Last value
return $self->_param($name)->[-1] unless @_;
return $self->every_param($name)->[-1] unless @_;

# Replace values
$self->remove($name);
Expand Down Expand Up @@ -177,18 +187,6 @@ sub to_string {
return join '&', @pairs;
}

sub _param {
my ($self, $name) = @_;

my @values;
my $params = $self->params;
for (my $i = 0; $i < @$params; $i += 2) {
push @values, $params->[$i + 1] if $params->[$i] eq $name;
}

return \@values;
}

1;

=encoding utf8
Expand Down
32 changes: 15 additions & 17 deletions lib/Mojolicious/Controller.pm
Expand Up @@ -65,7 +65,20 @@ sub every_cookie {
[map { $_->value } @{shift->req->every_cookie(shift)}];
}

sub every_param { _param(@_) }
sub every_param {
my ($self, $name) = @_;

# Captured unreserved values
my $captures = $self->stash->{'mojo.captures'} ||= {};
if (!$RESERVED{$name} && defined(my $value = $captures->{$name})) {
return ref $value eq 'ARRAY' ? $value : [$value];
}

# Uploads or param values
my $req = $self->req;
my $uploads = $req->every_upload($name);
return @$uploads ? $uploads : $req->every_param($name);
}

sub every_signed_cookie { _signed_cookie(@_) }

Expand Down Expand Up @@ -126,7 +139,7 @@ sub param {
}

# Value
return _param($self, $name)->[-1] unless @_;
return $self->every_param($name)->[-1] unless @_;

# Override values
$captures->{$name} = @_ > 1 ? [@_] : $_[0];
Expand Down Expand Up @@ -352,21 +365,6 @@ sub write_chunk {
return $self->rendered;
}

sub _param {
my ($self, $name) = @_;

# Captured unreserved values
my $captures = $self->stash->{'mojo.captures'} ||= {};
if (!$RESERVED{$name} && defined(my $value = $captures->{$name})) {
return ref $value eq 'ARRAY' ? $value : [$value];
}

# Uploads or param values
my $req = $self->req;
my $uploads = $req->every_upload($name);
return @$uploads ? $uploads : $req->every_param($name);
}

sub _signed_cookie {
my ($self, $name) = @_;

Expand Down
12 changes: 5 additions & 7 deletions lib/Mojolicious/Validator/Validation.pm
Expand Up @@ -54,7 +54,10 @@ sub error {
return $self;
}

sub every_param { shift->_param(@_) }
sub every_param {
return [] unless defined(my $value = shift->output->{shift()});
return [ref $value eq 'ARRAY' ? @$value : $value];
}

sub has_data { !!keys %{shift->input} }

Expand Down Expand Up @@ -82,7 +85,7 @@ sub param {
# List names
return sort keys %{$self->output} unless defined $name;

return $self->_param($name)->[-1];
return $self->every_param($name)->[-1];
}

sub required {
Expand All @@ -91,11 +94,6 @@ sub required {
return $self->error($name => ['required']);
}

sub _param {
return [] unless defined(my $value = shift->output->{shift()});
return [ref $value eq 'ARRAY' ? @$value : $value];
}

1;

=encoding utf8
Expand Down

0 comments on commit 09499d4

Please sign in to comment.