AnyEvent-SKKServ
    
    
  
  
  
view release on metacpan or search on metacpan
lib/AnyEvent/SKKServ.pm view on Meta::CPAN
                    $self->{on_error}->(@_);
                }
            });
        });
    };
}
1;
__END__
=encoding utf8
=head1 NAME
AnyEvent::SKKServ - Lightweight skkserv implementation for AnyEvent
=head1 SYNOPSIS
  use AnyEvent;
  use AnyEvent::SKKServ;
script/google-ime-skk.pl view on Meta::CPAN
use strict;
use warnings;
use utf8;
use AnyEvent;
use AnyEvent::HTTP;
use AnyEvent::SKKServ;
use Cache::Memory::Simple;
use Encode;
use JSON;
use URI;
use constant {
    SERVER_ERROR     => '0',
    SERVER_FOUND     => '1',
    SERVER_NOT_FOUND => '4',
    SERVER_FULL      => '9',
};
my $cache = Cache::Memory::Simple->new();
my $expire = 60 * 60 * 24;
my $enc = find_encoding('euc-jp');
my $json = JSON->new->utf8(1)->relaxed(1);
my $_uri = URI->new('http://www.google.com/transliterate');
sub _uri {
    my $text = shift;
    my $uri = $_uri->clone;
    $uri->query_form(
        langpair => 'ja-Hira|ja',
        text     => encode_utf8($text . ','), # prevent separating the clause
    );
    return $uri;
}
my $skkserv = AnyEvent::SKKServ->new(
    port => 55100,
    on_request => sub {
        my ($hdl, $req) = @_;
        $req = $enc->decode($req);
t/01_basic.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use Test::Requires 'Test::TCP';
use AnyEvent;
use AnyEvent::Handle;
use AnyEvent::Socket;
use AnyEvent::SKKServ;
my $server = Test::TCP->new(
    code => sub {
t/02_dict.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use Test::More;
use Test::Requires 'Test::TCP';
use AnyEvent;
use AnyEvent::Handle;
use AnyEvent::Socket;
use Encode;
use AnyEvent::SKKServ;
sub on_request {
    my ($hdl, $req) = @_;
    my %dict = (
        'ã¯ã¤ãã¿ã'   => "1/åé³ãã¯/å鳿ªæ¥/ããããã¯/ã¯ã¤ããã¯/ã¯ã¤ãã¿ã/\n",
        'ããã¿ããã' => "1/é¡é³ãªã³/é¡é³é´/ããã¿ããã/ã«ã¬ãããªã³/ï½¶ï½¶ï¾ï¾ï¾ï¾ï¾/\n",
        'ããã¿ããã' => "1/é¡é³ã¬ã³/ããã¿ããã/ã«ã¬ããã¬ã³/ï½¶ï½¶ï¾ï¾ï¾ï¾ï¾/\n",
    );
    $req = decode_utf8($req);
    if (exists $dict{$req}) {
        $hdl->push_write(encode_utf8($dict{$req}));
    } else {
        $hdl->push_write("4\n");
    }
}
my $server = Test::TCP->new(
    code => sub {
        my $port = shift;
        my $skkserv = AnyEvent::SKKServ->new(
t/02_dict.t view on Meta::CPAN
);
my $cv = AE::cv();
tcp_connect '127.0.0.1', $server->port, sub {
    my ($fh) = @_ or die $!;
    my $hdl; $hdl = AnyEvent::Handle->new(
        fh => $fh,
    );
    $hdl->push_write(encode_utf8('1ã¯ã¤ãã¿ã '));
    $hdl->push_read(regex => qr/\n/, sub {
        is decode_utf8($_[1]), "1/åé³ãã¯/å鳿ªæ¥/ããããã¯/ã¯ã¤ããã¯/ã¯ã¤ãã¿ã/\n";
    });
    $hdl->push_write(encode_utf8('1ããã¿ããã '));
    $hdl->push_read(regex => qr/\n/, sub {
        is decode_utf8($_[1]), "1/é¡é³ãªã³/é¡é³é´/ããã¿ããã/ã«ã¬ãããªã³/ï½¶ï½¶ï¾ï¾ï¾ï¾ï¾/\n";
    });
    $hdl->push_write(encode_utf8('1ããã¿ããã '));
    $hdl->push_read(regex => qr/\n/, sub {
        is decode_utf8($_[1]), "1/é¡é³ã¬ã³/ããã¿ããã/ã«ã¬ããã¬ã³/ï½¶ï½¶ï¾ï¾ï¾ï¾ï¾/\n";
    });
    $hdl->push_write(encode_utf8('1ãããããã '));
    $hdl->push_read(regex => qr/\n/, sub {
        is decode_utf8($_[1]), "4\n";
        undef $hdl;
        $cv->send;
    });
};
$cv->recv;
done_testing;
( run in 0.481 second using v1.01-cache-2.11-cpan-c333fce770f )