APR-HTTP-Headers-Compat
view release on metacpan or search on metacpan
inc/MyBuilder.pm view on Meta::CPAN
t/ lib/
)
);
}
sub ACTION_tidy {
my $self = shift;
my @extra = qw( Build.PL );
my %found_files = map { %$_ } $self->find_pm_files,
$self->_find_file_by_type( 'pm', 't' ),
$self->_find_file_by_type( 'pm', 'inc' ),
$self->_find_file_by_type( 't', 't' );
my @files = ( keys %found_files,
map { $self->localize_file_path( $_ ) } @extra );
for my $file ( @files ) {
system 'perltidy', '-b', $file;
unlink "$file.bak" if $? == 0;
}
}
1;
lib/APR/HTTP/Headers/Compat/MagicHash.pm view on Meta::CPAN
Get the table object.
=cut
sub table { shift->{table} }
sub _nicename {
my ( $self, @names ) = @_;
my $hdr = HTTP::Headers->new( map { $_ => 1 } @names );
my @nice = $hdr->header_field_names;
my %lookup = map { lc $_ => $_ } @nice;
my @r = map { $lookup{$_} or confess "No mapping for $_" } @names;
return wantarray ? @r : $r[0];
}
sub _nicefor {
my ( $self, $name ) = @_;
return $1 if $name =~ /^:(.+)/;
return $self->{namemap}{$name} ||= $self->_nicename( $name );
}
sub FETCH {
my ( $self, $key ) = @_;
my $nkey = $self->_nicefor( $key );
my @vals = $self->table->get( $nkey );
return $vals[0] if @vals < 2;
tie my @r, 'APR::HTTP::Headers::Compat::MagicArray', $nkey, $self,
@vals;
return \@r;
# return $self->{hash}{$nkey};
}
sub STORE {
my ( $self, $key, $value ) = @_;
my $nkey = $self->_nicefor( $key );
$self->{rmap}{$nkey} = $key;
my $table = $self->table;
my @vals = 'ARRAY' eq ref $value ? @$value : $value;
$table->set( $nkey, shift @vals );
$table->add( $nkey, $_ ) for @vals;
$self->_changed;
}
sub DELETE {
my ( $self, $key ) = @_;
lib/APR/HTTP/Headers/Compat/MagicHash.pm view on Meta::CPAN
}
sub CLEAR {
my ( $self ) = @_;
$self->table->clear;
$self->_changed;
}
sub EXISTS {
my ( $self, $key ) = @_;
my %fld = map { $_ => 1 } $self->_keys;
return exists $fld{$key};
}
sub _mkkeys {
my $self = shift;
my @k = ();
my $rm = $self->{rmap};
my %seen = ();
$self->table->do(
sub {
my ( $k, $v ) = @_;
my $kk = defined $rm->{$k} ? $rm->{$k} : lc $k;
push @k, $kk unless $seen{$kk}++;
} );
return \@k;
}
( run in 0.352 second using v1.01-cache-2.11-cpan-49f99fa48dc )