Mercury
view release on metacpan or search on metacpan
lib/Mercury/Controller/PubSub/Cascade.pm view on Meta::CPAN
#=method _send_message
#
# $c->_send_message( $topic, $msg );
#
# Send the given message out on all the appropriate topics. This handles
# the "Cascade" part.
#=cut
sub _send_message {
my ( $c, $topic, $msg ) = @_;
my @parts = split m{/}, $topic;
my @patterns =
# Only pattern objects that have been created
grep { defined }
# Change topics into pattern objects
map { $c->mercury->pattern( 'PubSub::Cascade' => $_ ) }
# Build parent topics
map { join '/', @parts[0..$_] }
0..$#parts-1;
$_->send_message( $msg ) for @patterns;
}
( run in 0.854 second using v1.01-cache-2.11-cpan-71847e10f99 )