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

Catmandu::Addable - Base class for all Catmandu modules need to implement add

SYNOPSIS

  package My::Adder;

  use Moo;
  use Data::Dumper;

  with 'Catmandu::Addable';

  sub add {
      my ($self,$object) = @_;

      print "So you want to add:\n";
      print Dumper($object);

      1;
  }

  sub commit {
      my $self = shift;

      print "And now you are done?\n";
  }

  package main;

  my $adder = My::Adder->new(fix => ['upcase(foo)']);

  # prints foo => BAR
  $adder->add({ foo => 'bar' });
  
  # prints:
  #  foo => BAR
  #  foo => BAR
  $adder->add_many([ { foo => 'bar' } , { foo => 'bar' }]);

  # prints a commit statement
  $adder->commit;

OPTIONS

autocommit

Autocommit when the exporter gets out of scope. Default 0.

METHODS

add($hash)

Receives a Perl hash and should return true or false.

commit

This method is usually called at the end of many add or add_many operations.

INHERIT

If you provide an 'add' method, then automatically your package gets a add_many method, plus a fix attribute which transforms all Perl hashes provided to the add method.

SEE ALSO

Catmandu::Fixable, Catmandu::Exporter , Catmandu::Store