File Coverage

blib/lib/String/Obfuscate/Base64/URL.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod 2 2 100.0
total 33 33 100.0


line stmt bran cond sub pod time code
1 1     1   1869 use v5.20;
  1         5  
2 1     1   8 use warnings;
  1         2  
  1         84  
3 1     1   7 use experimental 'signatures';
  1         3  
  1         10  
4              
5             package String::Obfuscate::Base64::URL {
6 1     1   226 use parent 'String::Obfuscate::Base64';
  1         3  
  1         8  
7              
8             # While MIME::Base64 does have a URL mode, it is pure-perl
9             # so might as well to do it manually
10              
11 20     20 1 36 sub obfuscate ($self, $str) {
  20         40  
  20         31  
  20         30  
12 20         91 $str = $self->SUPER::obfuscate($str);
13 20         46 $str =~ tr`+/=\n`-_`d; # + to - and / to _ and delete newline and =
14 20         50 $str;
15             }
16              
17 12     12 1 5053 sub deobfuscate ($self, $str) {
  12         31  
  12         30  
  12         27  
18 12         25 $str =~ tr`-_`+/`;
19 12         83 $str .= '=' while length($str) % 4;
20 12         57 $self->SUPER::deobfuscate($str);
21             }
22             }
23              
24             1;