The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Pollux::Action - action objects for Pollux stores

VERSION

version 0.0.2

SYNOPSIS

use Pollux::Action;

my $AddTodo = Pollux::Action->new( 'ADD_TODO', 'text' );

# later on...
$store->dispatch( $AddTodo->( 'do stuff' ) );

DESCRIPTION

Creates an action object generator out of an action name and a list of fields.

The objects overload a few operators to ease combiner comparisons:

# create the action generator
my $AddTodo = Pollux::Action->new( 'ADD_TODO', 'text' );

my $do_stuff = $AddTodo->( 'do stuff' );

# stringification resolves to the action type
print "$do_stuff";  # prints 'ADD_TODO'

# turned into a hashref if deferenced
my %x = %$do_stuff; # => { type => 'ADD_TODO', text => 'do stuff ' }

# smart-matching compare the type between two actions
print "matching" if $do_stuff ~~ $AddTodo->(); # prints 'matching'

AUTHOR

Yanick Champoux <yanick@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.