NAME

PGObject::Util::DBMethod - Declarative stored procedure <-> object mappings for the PGObject Framework

VERSION

Version 1.01.000

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