Permalink
Browse files

絵文字番号ベースのもの以外にユニコードによる記述もサポートするための準備

  • Loading branch information...
1 parent 2dcc74f commit 54b8ce639f49efcf36d07a20d94b0bdfdfe4ba6d @tokuhirom committed Oct 8, 2010
View
@@ -1,38 +1,9 @@
# NAME
-HTML::Pictogram::MobileJp - [emoji:1] みたいに絵文字を記述できるひと
-
-# SYNOPSIS
-
- use HTML::Pictogram::MobileJp;
- use HTTP::MobileAgent;
-
- my $ma = HTTP::MobileAgent->new();
- HTML::Pictogram::MobileJp->convert($ma, $html);
+HTML::Pictogram::MobileJp - 絵文字を一回かいたら、3キャリで表示できるようにするフィルタ
# DESCRIPTION
-[emoji:1] みたいな形式で絵文字を記述しておくと、それを各キャリヤにあわせた表記に変更してくれるライブラリ。
-
-数字部分は docomo の絵文字番号です。
-
-拡張絵文字を利用したい場合は、拡張絵文字番号 + 1000 で記述してください。たとえば拡1は [emoji:1001] と記述してください。
-
-サポート対象は 3G の3キャリです。
-
-絵文字の変換マップは Text_Pictogram_Mobile のものを拝借してます。
-
-# AUTHOR
-
-Tokuhiro Matsuno <tokuhirom AAJKLFJEF GMAIL COM>
-
-# SEE ALSO
-
-<http://openpear.org/package/Text_Pictogram_Mobile>
-
-# LICENSE
-
-Copyright (C) Tokuhiro Matsuno
+ドコモの絵文字番号 or 絵文字Unicodeの実態参照でかけば、それを各キャリアでみれるように変換するというライブラリです。
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
+詳細は [HTML::Pictogram::MobileJp::EmojiNumber](http://search.cpan.org/perldoc?HTML::Pictogram::MobileJp::EmojiNumber), [HTML::Pictogram::MobileJp::Unicode](http://search.cpan.org/perldoc?HTML::Pictogram::MobileJp::Unicode) をそれぞれみてください。
View
@@ -28,8 +28,9 @@ sub main {
local $Data::Dumper::Sortkeys = 1;
local $Data::Dumper::Terse = 1;
- print "package HTML::Pictogram::MobileJp::Map;\n";
+ print "package HTML::Pictogram::MobileJp::EmojiNumber::Map;\n";
print "use strict;\n";
+ print "use warnings;\n";
print "# This file was generated automatically.\n";
print "use base qw/Exporter/;\n";
print "our \@EXPORT = qw/\$DOCOMO \$EZWEB \$SOFTBANK/;\n";
@@ -3,37 +3,10 @@ use strict;
use warnings;
use 5.00800;
our $VERSION = '0.01';
-use HTML::Pictogram::MobileJp::Map;
+use HTML::Pictogram::MobileJp::EmojiNumber;
-sub convert {
- my ( $class, $ma, $html ) = @_;
-
- $html =~ s{\[emoji:(\d+)\]}{
- if ($ma->is_docomo) {
- my $i = $DOCOMO->{$1};
- "&#x$i;";
- } elsif ($ma->is_softbank) {
- my $s = $SOFTBANK->{$1};
- if ($s =~ /^\w+$/) {
- "&#x$s;";
- } else {
- $s;
- }
- } elsif ($ma->is_ezweb) {
- my $e = $EZWEB->{$1};
- if ($e =~ /^[0-9]+$/) {
- sprintf '<img localsrc="%d" />', $e;
- } else {
- $e;
- }
- } else {
- # non-mobile
- "[emoji:$1]";
- }
- }ge;
-
- $html;
-}
+# backward compatibility
+sub convert { HTML::Pictogram::MobileJp::EmojiNumber::convert(@_) }
1;
__END__
@@ -42,41 +15,11 @@ __END__
=head1 NAME
-HTML::Pictogram::MobileJp - [emoji:1] みたいに絵文字を記述できるひと
-
-=head1 SYNOPSIS
-
- use HTML::Pictogram::MobileJp;
- use HTTP::MobileAgent;
-
- my $ma = HTTP::MobileAgent->new();
- HTML::Pictogram::MobileJp->convert($ma, $html);
+HTML::Pictogram::MobileJp - 絵文字を一回かいたら、3キャリで表示できるようにするフィルタ
=head1 DESCRIPTION
-[emoji:1] みたいな形式で絵文字を記述しておくと、それを各キャリヤにあわせた表記に変更してくれるライブラリ。
-
-数字部分は docomo の絵文字番号です。
-
-拡張絵文字を利用したい場合は、拡張絵文字番号 + 1000 で記述してください。たとえば拡1は [emoji:1001] と記述してください。
-
-サポート対象は 3G の3キャリです。
-
-絵文字の変換マップは Text_Pictogram_Mobile のものを拝借してます。
-
-=head1 AUTHOR
-
-Tokuhiro Matsuno E<lt>tokuhirom AAJKLFJEF GMAIL COME<gt>
-
-=head1 SEE ALSO
-
-L<http://openpear.org/package/Text_Pictogram_Mobile>
-
-=head1 LICENSE
-
-Copyright (C) Tokuhiro Matsuno
+ドコモの絵文字番号 or 絵文字Unicodeの実態参照でかけば、それを各キャリアでみれるように変換するというライブラリです。
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
+詳細は L<HTML::Pictogram::MobileJp::EmojiNumber>, L<HTML::Pictogram::MobileJp::Unicode> をそれぞれみてください。
-=cut
@@ -0,0 +1,81 @@
+package HTML::Pictogram::MobileJp::EmojiNumber;
+use strict;
+use warnings;
+use 5.00800;
+use HTML::Pictogram::MobileJp::EmojiNumber::Map;
+
+sub convert {
+ my ( $class, $ma, $html ) = @_;
+
+ $html =~ s{\[emoji:(\d+)\]}{
+ if ($ma->is_docomo) {
+ my $i = $DOCOMO->{$1};
+ "&#x$i;";
+ } elsif ($ma->is_softbank) {
+ my $s = $SOFTBANK->{$1};
+ if ($s =~ /^\w+$/) {
+ "&#x$s;";
+ } else {
+ $s;
+ }
+ } elsif ($ma->is_ezweb) {
+ my $e = $EZWEB->{$1};
+ if ($e =~ /^[0-9]+$/) {
+ sprintf '<img localsrc="%d" />', $e;
+ } else {
+ $e;
+ }
+ } else {
+ # non-mobile
+ "[emoji:$1]";
+ }
+ }ge;
+
+ $html;
+}
+
+1;
+__END__
+
+=encoding utf8
+
+=head1 NAME
+
+HTML::Pictogram::MobileJp::EmojiNumber - [emoji:1] みたいに絵文字を記述できるひと
+
+=head1 SYNOPSIS
+
+ use HTML::Pictogram::MobileJp::EmojiNumber;
+ use HTTP::MobileAgent;
+
+ my $ma = HTTP::MobileAgent->new();
+ HTML::Pictogram::MobileJp::EmojiNumber->convert($ma, $html);
+
+=head1 DESCRIPTION
+
+[emoji:1] みたいな形式で絵文字を記述しておくと、それを各キャリヤにあわせた表記に変更してくれるライブラリ。
+
+数字部分は docomo の絵文字番号です。
+
+拡張絵文字を利用したい場合は、拡張絵文字番号 + 1000 で記述してください。たとえば拡1は [emoji:1001] と記述してください。
+
+サポート対象は 3G の3キャリです。
+
+絵文字の変換マップは Text_Pictogram_Mobile のものを拝借してます。
+
+=head1 AUTHOR
+
+Tokuhiro Matsuno E<lt>tokuhirom AAJKLFJEF GMAIL COME<gt>
+
+=head1 SEE ALSO
+
+L<http://openpear.org/package/Text_Pictogram_Mobile>
+
+=head1 LICENSE
+
+Copyright (C) Tokuhiro Matsuno
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
@@ -1,4 +1,4 @@
-package HTML::Pictogram::MobileJp::Map;
+package HTML::Pictogram::MobileJp::EmojiNumber::Map;
use strict;
# This file was generated automatically.
use base qw/Exporter/;
View
@@ -30,3 +30,4 @@ kazeburo
daisuke
maki
TODO
+docomo

0 comments on commit 54b8ce6

Please sign in to comment.