Changeset 5444 for lang/perl/Encode-JP-Mobile
- Timestamp:
- 01/25/08 00:19:56 (5 years ago)
- Location:
- lang/perl/Encode-JP-Mobile/branches/character
- Files:
-
- 2 modified
-
lib/Encode/JP/Mobile/Character.pm (modified) (4 diffs)
-
t/character.t (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Encode-JP-Mobile/branches/character/lib/Encode/JP/Mobile/Character.pm
r5442 r5444 11 11 my ($class, $unicode) = @_; 12 12 bless {unicode => $unicode}, $class; 13 } 14 15 sub from_number { 16 my $class = shift; 17 my %args = @_; 18 my $carrier = $args{carrier} or croak "missing carrier"; 19 my $number = $args{number} or croak "missing number"; 20 21 my $dat = $class->_load_map; 22 23 $carrier = +{I => 'docomo', E => 'kddi', V => 'softbank', 'H' => 'docomo'}->{$carrier}; 24 $number = encode_utf8($number); 25 26 my $key = $carrier eq 'kddi' ? 'unicode_auto' : 'unicode'; 27 for my $row (@{$dat->{$carrier}}) { 28 if ($row->{number} eq $number) { 29 return $class->from_unicode(hex $row->{$key}); 30 } 31 } 32 croak "unknown number: $number for $carrier"; 13 33 } 14 34 … … 131 151 unicode からインスタンスをつくります。 132 152 153 =item from_name 154 155 my $char = Encode::JP::Mobile::Character->from_name( 156 carrier => 'I', 157 number => "拡76", 158 ); 159 160 絵文字番号からインスタンスをつくります。 161 133 162 =item name 134 163 … … 157 186 絵文字番号を得ます。 158 187 159 # docomo はどうするか問題。188 DoCoMo の場合には「拡76」のような文字列が返ってくることに注意してください。 160 189 161 190 =item carrier … … 168 197 =back 169 198 170 =head1 TODO171 172 carrier method173 174 performance tuning175 176 199 =head1 AUTHOR 177 200 -
lang/perl/Encode-JP-Mobile/branches/character/t/character.t
r5442 r5444 3 3 use utf8; 4 4 use Encode::JP::Mobile::Character; 5 use Test::More tests => 1 5;5 use Test::More tests => 18; 6 6 7 7 # docomo … … 22 22 } 23 23 24 { 25 is(Encode::JP::Mobile::Character->from_number(carrier => 'I', number => "拡76")->unicode_hex, 'E757'); 26 } 27 24 28 # KDDI 25 29 { … … 30 34 is $char->name, "チュー2", "What's name for 0xECA2"; 31 35 ok Encode::is_utf8($char->name); 36 is $char->number, 455, 'number'; 37 } 38 39 # KDDI from number. 40 { 41 is(Encode::JP::Mobile::Character->from_number(carrier => 'E', number => 455)->unicode_hex, 'ECA2'); 32 42 } 33 43
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)