Acme-FSM

 view release on metacpan or  search on metacpan

lib/FSM.pm  view on Meta::CPAN


There're some weird loaded words in this POD,
most probably, poorly choosen
(but those are going to stay anyway).
So here comes disambiguation list.

=over

=item I<$action>

Special flag associated with next I<{state}> in a I<[turn]>
(covered in details in L<B<process()>|/process()> method description).
B<(note)> It may be applied to a I<[turn]> of I<{fst}> or I<{state}>.

=item blackboard

Shamelesly stolen from B<DMA::FSM>.
Originally, it meant some opaque HASH passed around in B<DMA::FSM::FSM()>
where
user-code could store it's own ideas and such.
Now it's an object blessed into B<Acme::FSM>

t/base/query.t  view on Meta::CPAN

# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL

use strict;
use warnings;

package t::TestSuite::FSM;
use parent qw| Acme::FSM |;

sub shift_shift       {
    my $bb          = shift @_;
    $bb->{bull}     = shift @main::flags;
    $bb->{shambles} = shift @_                                          if @_;
    shift @main::flags }

package t::TestSuite::havoc;

sub new { bless { }, shift @_ }

sub shift_shift       {
    my $bb       = shift @_;
    $bb->{mess}  = shift @main::flags;
    $bb->{slops} = shift @_                                             if @_;
    shift @main::flags }

package main;
use version 0.77; our $VERSION = version->declare( v2.3.2 );

use t::TestSuite qw| :diag :wraps |;
use Test::More tests => 45;

use Acme::FSM;

our( $bb, $rc, $stderr );
our %st    = (      );
my $method = q|query|;

our @flags =
qw| The_Night_We_Died                Zaia
    Muh                            Ka_III
    Zombies              De_Zeuhl_Undazir
    Eliphas_Levi        Maneh_Fur_Da_Zess
    Troller_Tanz           Ek_Sun_Da_Zess
    C_est_la_Vie_Qui_les_A_Menes_La  Nono
    Do_The_Music   Da_Zeuhl_Worts_Mekanik
    Thaud                        Wainsaht
    The_Last_Seven_Minutes Nebehr_Gudahtt
    Udu_Wudu                  Kohntarkosz |;

t/base/query_dumper.t  view on Meta::CPAN

# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL

use strict;
use warnings;

package t::TestSuite::FSM;
use parent qw| Acme::FSM |;

sub shift_shift       {
    my $bb        = shift @_;
    $bb->{matrixone}  = shift @main::flags;
    $bb->{CSSC} = shift @_                                              if @_;
    shift @main::flags }

package t::TestSuite::dumper;

sub new { bless { }, shift @_ }

sub shift_shift       {
    my $bb           = shift @_;
    $bb->{aegis} = shift @main::flags;
    $bb->{slash_briefcase}   = shift @_                                 if @_;
    shift @main::flags }

package main;
use version 0.77; our $VERSION = version->declare( v2.3.2 );

use t::TestSuite qw| :diag :wraps |;
use Test::More tests => 65;

use Acme::FSM;

our( %st, $bb, $rc, $stderr );
our @flags =
qw| Orcrist           Brinning
    Nothung           Gurthang
    Caliburn             Mimun 
    Durandal            Graban
    Ekkisax         Noralltach
    Claidheamh_Solius Samsamha
    Baptism            Galatyn
    Murgleis      Haute_Claire
    Waske             Courtain
    Stormbringer      Hrunting |;

t/base/query_source.t  view on Meta::CPAN

# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL

use strict;
use warnings;

package t::TestSuite::FSM;
use parent qw| Acme::FSM |;

sub shift_shift       {
    my $bb        = shift @_;
    $bb->{Ashevill_pm}  = shift @main::flags;
    $bb->{Anchorage_pm} = shift @_                                      if @_;
    shift @main::flags }

package t::TestSuite::source;

sub new { bless { }, shift @_ }

sub shift_shift       {
    my $bb           = shift @_;
    $bb->{Torino_pm} = shift @main::flags;
    $bb->{Lund_pm}   = shift @_                                         if @_;
    shift @main::flags }

package main;
use version 0.77; our $VERSION = version->declare( v2.3.2 );

use t::TestSuite qw| :diag :wraps |;
use Test::More tests => 62;

use Acme::FSM;

our( $bb, $rc, $stderr );
our %st    = (             );
my $method = q|query_source|;

my $tag;
our @flags =
qw| mustrum_ridcully        quirm
    djelibeybi            pteppic
    bravd                creosote
    xxxx                    tsort
    angua         ponder_stibbons
    king_verence        sto_helit
    bel_shamharoth sergeant_colon
    great_t_phon        boy_willy
    conina               llamedos
    agnes_nitt             lancre |;

t/base/query_switch.t  view on Meta::CPAN

# AS-IS, NO-WARRANTY, HOPE-TO-BE-USEFUL

use strict;
use warnings;

package t::TestSuite::FSM;
use parent qw| Acme::FSM |;

sub push_push                    {
    my $bb        = shift @_;
    $bb->{MKS}    = shift @main::flags;
    $bb->{CS_RCS} = shift @_                                            if @_;
    return !0, shift @main::flags }

package t::TestSuite::switch;

sub new { bless { }, shift @_ }

sub push_push                    {
    my $bb          = shift @_;
    $bb->{jedi_vcs} = shift @main::flags;
    $bb->{gat}      = shift @_                                          if @_;
    return !0, shift @main::flags }

package main;
use version 0.77; our $VERSION = version->declare( v2.3.4 );

use t::TestSuite qw| :diag :wraps |;
use Test::More;

use Acme::FSM;
use List::Util qw| sum |;

our( $bb, $rc, $stderr );
our %st    = ( START => { switch => undef, });
my $method = q|query_switch|;

our( $lock, $tag );
our @flags =
qw| m_files     Chiocciola
    archipel  superversion
    mercurial Valdimontone
    surround_SCM     asvcs
    dcvs            Aquila
    so6            fastcst
    arx            Nicchio
    cvsnt   sourceanywhere
    opencm         Pantera
    cvs          codeville
    controltier      Torre
    rmtrcs       ic_manage |;

sub push_push                      {
    my $rc = shift @_;
    return sub                    {
    my $bb      = shift @_;
    $bb->{RCS}  = shift @main::flags;
    $bb->{CSSC} = shift @_                                              if @_;
    return $rc, shift @main::flags }}

my %plug = ( diag_level => 5 );
my $switch;

my @data =
([            q|{switch} isa (undef)|,
  [qw|                        fail |],
  sub {                  undef, { } },
  [                                 ],
  qr.\Q {START}{switch} !isa defined.                                 ],

t/base/verify.t  view on Meta::CPAN

use version 0.77; our $VERSION = version->declare( v2.3.2 );

use t::TestSuite qw| :diag :wraps |;
use Test::More;

plan tests => 38;

use Acme::FSM;

our( %st, $bb, $rc, $stderr );
our @flags =
qw| The_Night_We_Died                Zaia
    Muh                            Ka_III
    Zombies              De_Zeuhl_Undazir
    Eliphas_Levi        Maneh_Fur_Da_Zess
    Troller_Tanz           Ek_Sun_Da_Zess
    C_est_la_Vie_Qui_les_A_Menes_La  Nono
    Do_The_Music   Da_Zeuhl_Worts_Mekanik
    Thaud                        Wainsaht
    The_Last_Seven_Minutes Nebehr_Gudahtt
    Udu_Wudu                  Kohntarkosz |;



( run in 0.345 second using v1.01-cache-2.11-cpan-94b05bcf43c )