PGObject::Util::DBMethod(3) Declarative stored procedure <-> object mappings for

VERSION

Version 1.00.001

SYNOPSIS

Without PGObject::Util::DBobject, you would:


sub mymethod {
my ($self) = @_;
return $self->call_dbmethod(funcname => 'foo');
}

With this you'd do this instead:

    dbmethod mymethod => (funcname => 'foo');

EXPORT

This exports only dbmethod, which it always exports.

SUBROUTINES/METHODS

dbmethod

use as dbmethod (name => (default_arghash))

For example:

  package MyObject;
  use PGObject::Utils::DBMethod;
  dbmethod save => (
                                 strict_args => 0,
                                    funcname => 'save_user', 
                                  funcschema => 'public',
                                        args => { admin => 0 },
  );
  $MyObject->save(args => {username => 'foo', password => 'bar'});

Special arguments are:

arg_lit
It set must point to a hashref. Used to allow mapping of function arguments to arg hash elements. If this is set then funcname, funcschema, etc, cannot be overwritten on the call.
strict_args
If true, args override args provided by user.
returns_objects
If true, bless returned hashrefs before returning them.
merge_back
If true, merges the first record back to the $self at the end before returning, and returns $self. Note this is a copy only one layer deep which is fine for the use case of merging return values from the database into the current object.

AUTHOR

Chris Travers, "<chris.travers at gmail.com>"

BUGS

Please report any bugs or feature requests to "bug-pgobject-util-dbmethod at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PGObject-Util-DBMethod>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc PGObject::Util::DBMethod

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2014 Chris Travers.

This program is released under the following license: BSD