Acme-RandomEmoji
view release on metacpan or search on metacpan
author/RandomEmoji.pm view on Meta::CPAN
package Acme::RandomEmoji;
use strict;
use warnings;
use utf8;
use Exporter 'import';
our @EXPORT_OK = qw(random_emoji);
our $VERSION = '0.01';
our $EMOJI = ## REPLACE ##;
sub random_emoji { ${ $EMOJI }[ int rand @$EMOJI ] }
1;
author/generate.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode ();
use HTTP::Tiny;
use FindBin;
use Path::Tiny;
use File::Basename 'basename';
use Data::Dump ();
chdir $FindBin::Bin;
my $http = HTTP::Tiny->new;
author/generate.pl view on Meta::CPAN
emoji-zwj-sequences.txt
emoji-sequences.txt
);
for my $url (sort keys %url) {
warn "-> get $url\n";
my $file = basename $url;
my $res = $http->mirror($url, $file);
die "$url: $res->{status}\n" unless $res->{success};
warn "-> unmodified $file\n" if $res->{status} == 304;
$url{$url} = path($file)->slurp_utf8;
}
sub load_emoji {
my @content = @_;
my @line = map { split /\n/, $_ } @content;
my @chr;
while (defined(my $line = shift @line)) {
chomp $line;
$line =~ s/^\s+//; $line =~ s/\s+$//;
next if !$line || $line =~ /^#/;
author/generate.pl view on Meta::CPAN
}
}
\@chr;
}
my $emoji = load_emoji( map { $url{$_} } sort keys %url );
my $dump = Data::Dump::dump($emoji);
warn "-> write ../lib/Acme/RandomEmoji.pm\n";
my $template = path("RandomEmoji.pm")->slurp_utf8;
$template =~ s/## REPLACE ##/$dump/;
path("../lib/Acme/RandomEmoji.pm")->spew_utf8(
"# THIS FILE IS AUTOMATICALLY GENERATED BY author/generate.pl\n",
$template
);
lib/Acme/RandomEmoji.pm view on Meta::CPAN
# THIS FILE IS AUTOMATICALLY GENERATED BY author/generate.pl
package Acme::RandomEmoji;
use strict;
use warnings;
use utf8;
use Exporter 'import';
our @EXPORT_OK = qw(random_emoji);
our $VERSION = '0.02';
our $EMOJI = [
"#\x{FE0F}",
"*\x{FE0F}",
"0\x{FE0F}",
"1\x{FE0F}",
t/01_basic.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Acme::RandomEmoji 'random_emoji';
use Encode ();
diag Encode::encode_utf8( random_emoji ) for 1..10;
pass "ok";
done_testing;
( run in 1.044 second using v1.01-cache-2.11-cpan-49f99fa48dc )