File Coverage

blib/lib/Encode/Korean/HSR.pm
Criterion Covered Total %
statement 20 34 58.8
branch 0 4 0.0
condition n/a
subroutine 7 11 63.6
pod 2 4 50.0
total 29 53 54.7


line stmt bran cond sub pod time code
1             # Encoding of Korean: Hangeul Society Romanization 1984
2              
3             # $Id: HSR.pm,v 1.7 2007/11/29 14:25:31 you Exp $
4              
5             package Encode::Korean::HSR;
6              
7             our $VERSION = do { q$Revision: 1.7 $ =~ /\d+\.(\d+)/; sprintf "%.2f", $1 / 100 };
8              
9 1     1   23836 use 5.008008;
  1         4  
  1         32  
10              
11 1     1   5 use strict;
  1         2  
  1         27  
12 1     1   4 use warnings;
  1         5  
  1         31  
13              
14 1     1   799 use Encode::Encoding;
  1         12618  
  1         33  
15 1     1   8 use base qw(Encode::Encoding);
  1         2  
  1         146  
16              
17             __PACKAGE__->Define(qw/hsr-1984 hsr1984 hsr/);
18              
19             sub import {
20 1     1   16 require Encode;
21 1         45 Encode->export_to_level(1,@_);
22             }
23              
24              
25             # == RULES ==
26 1     1   709 use Encode::Korean::TransliteratorGenerator;
  1         3  
  1         296  
27             my $hsr = Encode::Korean::TransliteratorGenerator->new();
28              
29             $hsr->consonants(qw(g gg n d dd l m b bb s ss ng j jj ch k t p h));
30             $hsr->vowels(qw(a ae ya yae eo e yeo ye o wa wae oe yo u weo we wi yu eu eui i));
31             $hsr->el('l');
32             $hsr->ell('ll');
33             $hsr->naught('.');
34             $hsr->sep('.');
35             $hsr->make();
36              
37              
38             # == MODES ==
39             $hsr->enmode('greedy');
40             $hsr->demode('greedy');
41             sub enmode {
42 0     0 0   my $class = shift;
43 0           my($mode) = @_;
44 0           $hsr->enmode($mode);
45             }
46              
47             sub demode {
48 0     0 0   my $class = shift;
49 0           my($mode) = @_;
50 0           $hsr->demode($mode);
51             }
52              
53              
54             # == METHODS ==
55             # === encode ===
56             # * encode($string [,$check])
57             # * Encodes unicode hangul syllables (Perl internal string)
58             # into transliterated (romanized) string
59             sub encode ($$;$) {
60 0     0 1   my ($obj, $str, $chk) = @_;
61 0           my $tr = $hsr->encode($str, $chk);
62 0 0         $_[1] = '' if $chk;
63 0           return $tr;
64             }
65              
66             #
67             # === decode ===
68             # * decode($octets [,$check])
69             # * Decodes transliteration into unicode hangul syllables (Perl internal string)
70             sub decode ($$;$) {
71 0     0 1   my ($obj, $str, $chk) = @_;
72 0           my $han = $hsr->decode($str, $chk);
73 0 0         $_[1] = '' if $chk;
74 0           return $han;
75             }
76              
77             # === cat_decode ===
78             # * Needs to work with encoding pragma
79             # * cat_decode($destination, $octets, $offset, $terminator [,$check])
80              
81              
82             1;
83             __END__