Acme-CoC-Dice

 view release on metacpan or  search on metacpan

lib/Acme/CoC/Dice.pm  view on Meta::CPAN

package Acme::CoC::Dice;

use strict;
use warnings;
use utf8;

use Acme::CoC::Util;
use Acme::CoC::Types;

use Carp qw/croak/;
use Smart::Args;

our $VERSION = '0.03';

sub role {

lib/Acme/CoC/Dice.pm  view on Meta::CPAN

        } else {
            $role->{result} = 'normal success';
        }
    }
    return $role;
}

1;
__END__

=encoding utf-8

=head1 NAME

Acme::CoC::Dice - Dice role module for CoC TRPG.

=head1 SYNOPSIS

  use Acme::CoC::Dice;

  my $dice_role = Acme::CoC::Dice->role('1d100');

lib/Acme/CoC/Types.pm  view on Meta::CPAN

package Acme::CoC::Types;
use strict;
use warnings;
use utf8;

use Mouse::Util::TypeConstraints;

subtype 'command'
    => as 'Str'
    => where { $_ =~ /[Ss]kill|cc [1-9][0-9]*|ccb [1-9][0-9]*|[1-9][0-9]*[dD][1-9][0-9]*/ }
    => message { qw/$_ is invalid command/ };

1;

lib/Acme/CoC/Util.pm  view on Meta::CPAN

package Acme::CoC::Util;
use strict;
use utf8;
use warnings;

use parent qw/Exporter/;
use Smart::Args;
use Moose;

our @EXPORT = qw/
    eq_any
    is_ccb
    get_target

t/01_role.t  view on Meta::CPAN

use strict;
use warnings;
use utf8;

use Acme::CoC::Dice;
use Acme::CoC::Util;

use Test2::V0;
use Module::Spy;

my $target = 'Acme::CoC::Dice';

subtest '#role' => sub {

t/Types.t  view on Meta::CPAN

use strict;
use warnings;
use utf8;

use Acme::CoC::Types;

use Smart::Args;
use Test2::V0;


subtest 'type: Str' => sub {
    sub str_function {
        args my $param => {isa => 'Str'};

t/Util.t  view on Meta::CPAN

use strict;
use warnings;
use utf8;

use Acme::CoC::Util;

use Test2::V0;

subtest 'eq_any' => sub {
    ok eq_any('test', [1, 2, 'test']);
    ok !eq_any('test', [1, 2]);
};



( run in 0.267 second using v1.01-cache-2.11-cpan-4d50c553e7e )