Show
Ignore:
Timestamp:
01/25/08 00:19:56 (5 years ago)
Author:
tokuhirom
Message:

added $char->from_number method.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Encode-JP-Mobile/branches/character/lib/Encode/JP/Mobile/Character.pm

    r5442 r5444  
    1111    my ($class, $unicode) = @_; 
    1212    bless {unicode => $unicode}, $class; 
     13} 
     14 
     15sub 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"; 
    1333} 
    1434 
     
    131151unicode からインスタンスをつくります。 
    132152 
     153=item from_name 
     154 
     155    my $char = Encode::JP::Mobile::Character->from_name( 
     156        carrier => 'I', 
     157        number  => "拡76", 
     158    ); 
     159 
     160絵文字番号からインスタンスをつくります。 
     161 
    133162=item name 
    134163 
     
    157186絵文字番号を得ます。 
    158187 
    159 # docomo はどうするか問題 
     188DoCoMo の場合には「拡76」のような文字列が返ってくることに注意してください 
    160189 
    161190=item carrier 
     
    168197=back 
    169198 
    170 =head1 TODO 
    171  
    172 carrier method 
    173  
    174 performance tuning 
    175  
    176199=head1 AUTHOR 
    177200