Aion-Emitter
view release on metacpan or search on metacpan
t/aion/emitter.t view on Meta::CPAN
#
# Файл lib/Event/BallEvent.pm:
#@> lib/Event/BallEvent.pm
#>> package Event::BallEvent;
#>>
#>> use Aion;
#>>
#>> has radius => (is => 'rw', isa => Num);
#>> has weight => (is => 'rw', isa => Num);
#>>
#>> 1;
#@< EOF
#
# Файл lib/Listener/RadiusListener.pm:
#@> lib/Listener/RadiusListener.pm
#>> package Listener::RadiusListener;
#>>
#>> use Aion;
#>>
#>> #@listen Event::BallEvent
#>> sub listen {
#>> my ($self, $event) = @_;
#>>
#>> $event->radius(10);
#>> }
#>>
#>> 1;
#@< EOF
#
# Файл lib/Listener/WeightListener.pm:
#@> lib/Listener/WeightListener.pm
#>> package Listener::WeightListener;
#>>
#>> use Aion;
#>>
#>> #@listen Event::BallEvent
#>> sub listen {
#>> my ($self, $event) = @_;
#>>
#>> $event->weight(12);
#>> }
#>>
#>> #@listen Event::BallEvent#mini âMinimize versionâ
#>> sub minimize {
#>> my ($self, $event) = @_;
#>>
#>> $event->weight(3);
#>> }
#>>
#>> 1;
#@< EOF
#
# Файл etc/annotation/listen.ann:
#@> etc/annotation/listen.ann
#>> Listener::RadiusListener#listen,6=Event::BallEvent
#>> Listener::WeightListener#listen,6=Event::BallEvent
#>> Listener::WeightListener#minimize,6=Event::BallEvent#mini âMinimize versionâ
#@< EOF
#
subtest 'SYNOPSIS' => sub {
use lib 'lib';
use Aion::Emitter;
use Event::BallEvent;
my $emitter = Aion::Emitter->new;
my $ballEvent = Event::BallEvent->new;
$emitter->emit($ballEvent);
local ($::_g0 = do {$ballEvent->radius}, $::_e0 = do {10}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$ballEvent->radius # -> 10' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$ballEvent->weight}, $::_e0 = do {12}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$ballEvent->weight # -> 12' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
$ballEvent->radius(0);
$emitter->emit($ballEvent, "mini");
local ($::_g0 = do {$ballEvent->weight}, $::_e0 = do {3}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$ballEvent->weight # -> 3' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {$ballEvent->radius}, $::_e0 = do {0}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, '$ballEvent->radius # -> 0' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# # DESCRIPTION
#
# ÐаннÑй диÑпеÑÑÐµÑ ÑобÑÑий ÑеализÑÐµÑ Ð¿Ð°ÑÑеÑн **Event Dispatcher** в коÑоÑом ÑобÑÑие опÑеделÑеÑÑÑ Ð¿Ð¾ клаÑÑÑ Ð¾Ð±ÑекÑа ÑобÑÑÐ¸Ñ (event).
#
# СлÑÑаÑÐµÐ»Ñ ÑегиÑÑÑиÑÑеÑÑÑ ÐºÐ°Ðº Ñон в плеÑоме и бÑÐ´ÐµÑ Ð²Ñегда пÑедÑÑавлен одним обÑекÑом.
#
# ÐеÑод обÑабаÑÑваÑÑий ÑобÑÑÐ¸Ñ Ð¾ÑмеÑаеÑÑÑ Ð°Ð½Ð½Ð¾ÑаÑией `#@listen`.
#
# # SUBROUTINES
#
# ## emit ($event, [$key])
#
# ÐзлÑÑÐ°ÐµÑ ÑобÑÑие: вÑзÑÐ²Ð°ÐµÑ Ð²Ñе ÑлÑÑаÑели ÑвÑзаннÑе Ñ ÑобÑÑием `$event`.
#
# ÐополниÑелÑнÑй паÑамеÑÑ `$key` позволÑÐµÑ ÑказаÑÑ ÑÑоÑнÑÑÑее ÑобÑÑие. ÐÑедÑÑавÑÑе, ÑÑо Ñ Ð½Ð°Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑво конÑÑоллеÑов и Ð¼Ñ Ñ
оÑим излÑÑиÑÑ ÑÐ...
#
# `$key` Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð±ÑквÑ, ÑиÑÑÑ, подÑÑÑкивание, ÑиÑе, двоеÑоÑие и ÑоÑкÑ.
#
# # AUTHOR
#
# Yaroslav O. Kosmina <dart@cpan.org>
#
# # LICENSE
#
# â **Perl5**
#
# # COPYRIGHT
#
# The Aion::Emitter module is copyright (c) 2026 Yaroslav O. Kosmina. Rusland. All rights reserved.
::done_testing;
};
::done_testing;
( run in 0.571 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )