Acme-Insult

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

                  "Acme::Insult::Evil" : "0"
               }
            }
         }
      },
      "json" : {
         "description" : "-json support in insult.pl",
         "prereqs" : {
            "runtime" : {
               "requires" : {
                  "JSON::Tiny" : "0.58"
               }
            }
         }
      },
      "pirate" : {
         "description" : "Acme::Insult::Pirate support",
         "prereqs" : {
            "runtime" : {
               "requires" : {
                  "Acme::Insult::Pirate" : "0"

META.json  view on Meta::CPAN

         "web" : "https://github.com/sanko/Acme-Insult/issues"
      },
      "homepage" : "https://github.com/sanko/Acme-Insult",
      "repository" : {
         "type" : "git",
         "url" : "https://github.com/sanko/Acme-Insult.git",
         "web" : "https://github.com/sanko/Acme-Insult"
      }
   },
   "version" : "1.1",
   "x_serialization_backend" : "JSON::PP version 4.16",
   "x_static_install" : 1
}

META.yml  view on Meta::CPAN

    - author
    - builder
optional_features:
  evil:
    description: 'Acme::Insult::Evil support'
    requires:
      Acme::Insult::Evil: '0'
  json:
    description: '-json support in insult.pl'
    requires:
      JSON::Tiny: '0.58'
  pirate:
    description: 'Acme::Insult::Pirate support'
    requires:
      Acme::Insult::Pirate: '0'
provides:
  Acme::Insult:
    file: lib/Acme/Insult.pm
    version: '1.1'
recommends:
  Acme::Insult::Evil: '0'

cpanfile  view on Meta::CPAN

requires 'Acme::Insult::Glax';
recommends 'Acme::Insult::Evil';
recommends 'Acme::Insult::Pirate';
feature evil => 'Acme::Insult::Evil support' => sub {
    requires 'Acme::Insult::Evil';
};
feature pirate => 'Acme::Insult::Pirate support' => sub {
    requires 'Acme::Insult::Pirate';
};
feature json => '-json support in insult.pl' => sub {
    requires 'JSON::Tiny' => '0.58';    # API returns insults as plain strings (for now)
};
on 'test' => sub {
    requires 'Test2::V0' => 0.000159;
    requires 'Capture::Tiny';
};
on 'configure' => sub {
    requires 'Archive::Tar';
    requires 'CPAN::Meta';
    requires 'ExtUtils::Config'  => 0.003;
    requires 'ExtUtils::Helpers' => 0.020;

script/insult.pl  view on Meta::CPAN

#~ @ARGV = qw[-h];
#~ @ARGV = qw[-evil];
#~ @ARGV = qw[-pirate];
#~ @ARGV = qw[-glax];
#~ @ARGV = qw[-flavors];
#
my $raw = 0;
my $flavor;

sub _echo ($insult) {
    $raw && eval 'require JSON::Tiny' ? JSON::Tiny::encode_json( {%$insult} ) : $insult;
}
GetOptions(
    \my %h, 'language=s',
    'help'     => sub { pod2usage( -exitval => 1 ) },
    'flavors!' => sub { exit !say 'Supported insult flavors: ' . join ', ', Acme::Insult::flavors() },
    'json!'    => \$raw,
    'glax!'    => sub { $flavor = 'glax' },
    'evil!'    => sub { $flavor = 'evil' },
    'pirate!'  => sub { $flavor = 'pirate' },
);

script/insult.pl  view on Meta::CPAN


    insult                               # generate a random insult
    insult -json                         # insult someone if you're a robot
    insult -glax                         # generate an insult with libInsult
    insult -evil                         # generate an especially poor taste
    insult -pirate                       # generate a pirate themed insult
    insult -help                         # get help

=head1 OPTIONS

    -json               Echo raw JSON encoded data
    -flavors            List supported insult flavors
    -glax               Generate an insult with Acme::Insult::Glax
    -evil               Generate an insult with Acme::Insult::Evil
    -pirate             Generate an insult with Acme::Insult::Pirate
    -help               Display this help message

=head1 DESCRIPTION

This script wraps Acme::Insult.



( run in 1.462 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )