Thread URI::Find und Fixes (6 answers)
Opened by GwenDragon at 2014-06-30 21:00

GwenDragon
 2014-06-30 09:51
#176226 #176226
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Ich habe jetzt auf meinem Github GwenDragon/URI-Find geforkt, damit M. Schwern Patches mitbekommt.

//EDIT:
Und den Patch auch committed sowie einen Pullrequest gestartet.

Für diejenigen, die sich mit Perls Modultests nicht so auskennen und sich da nicht durchwühlen wollen, ein weiteres Testscript, das zeigt wie URI::Find jetzt läuft.

more (13.2kb):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
use strict;
use warnings;
use URI::URL;
use feature 'say';

use utf8; binmode STDOUT,'utf8';

my %TESTS = (
        'http://müller.de' => 'http://xn--mller-kva.de/',
        'http://موقع.وزارة-الاتصالات.مصر' => 'http://xn--4gbrim.xn----ymcbaaajlc6dj7bxne2c.xn--wgbh1c/',
        'http://правительство.рф' => 'http://xn--80aealotwbjpid2k.xn--p1ai/',
        'http://北京大学.cn' => 'http://xn--1lq90ic7fzpc.cn/',
);

say "\n", '-'x10;
say '### Test URI::URL Punycode';
for my $key (keys %TESTS) {
        my $u = URI::URL->new($key);
   print "$key ", $u eq $TESTS{$key} ? 'OK' : 'FAIL', "\n";
}

#######################

use lib 'uri-find/lib';
use URI::Find;

say "\n", '-'x10;
say '### Test URI::Find with IDNA domains';
my $finder = URI::Find->new(sub {
    my($uri, $orig_uri) = @_;
        say $uri eq $TESTS{$orig_uri} ? "OK '$uri is $orig_uri'" : "FAIL";
        return $orig_uri; 
});
my $text = join " ",keys %TESTS;
$finder->find(\$text);

####################

use URI::Find::Schemeless;
my %TESTS2 = (
        'müller.de' => 'http://xn--mller-kva.de/',
        'موقع.وزارة-الاتصالات.مصر' => 'http://xn--4gbrim.xn----ymcbaaajlc6dj7bxne2c.xn--wgbh1c/',
        'правительство.рф' => 'http://xn--80aealotwbjpid2k.xn--p1ai/',
        '北京大学.cn' => 'http://xn--1lq90ic7fzpc.cn/',
);
say "\n", '-'x10;
say '### Test URI::Find::Schemeless with IDNA domains';
my $finder2 = URI::Find::Schemeless->new(sub {
    my($uri, $orig_uri) = @_;
        say $uri eq $TESTS2{$orig_uri} ? "OK '$uri is $orig_uri'" : "FAIL";
        return $orig_uri; 
});
$text = join " ",keys %TESTS2;
$finder2->find(\$text);

1;


Vorschläge, Anregungen und Kritik sind von mir gern gesehen.

Splitted from Ersatz für URI::Find msg #176131
Last edited: 2014-06-30 21:00:07 +0200 (CEST)

View full thread URI::Find und Fixes