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 )