.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PGObject::Util::DBMethod 3pm" .TH PGObject::Util::DBMethod 3pm "2019-12-27" "perl v5.30.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PGObject::Util::DBMethod \- Declarative stored procedure <\-> object mappings for the PGObject Framework .SH "VERSION" .IX Header "VERSION" Version 1.00.003 .SH "SYNOPSIS" .IX Header "SYNOPSIS" Without PGObject::Util::DBobject, you would: .PP .Vb 4 \& sub mymethod { \& my ($self) = @_; \& return $self\->call_dbmethod(funcname => \*(Aqfoo\*(Aq); \& } .Ve .PP With this you'd do this instead: .PP .Vb 1 \& dbmethod mymethod => (funcname => \*(Aqfoo\*(Aq); .Ve .SH "EXPORT" .IX Header "EXPORT" This exports only dbmethod, which it always exports. .SH "SUBROUTINES/METHODS" .IX Header "SUBROUTINES/METHODS" .SS "dbmethod" .IX Subsection "dbmethod" use as dbmethod (name => (default_arghash)) .PP For example: .PP .Vb 2 \& package MyObject; \& use PGObject::Utils::DBMethod; \& \& dbmethod save => ( \& strict_args => 0, \& funcname => \*(Aqsave_user\*(Aq, \& funcschema => \*(Aqpublic\*(Aq, \& args => { admin => 0 }, \& ); \& $MyObject\->save(args => {username => \*(Aqfoo\*(Aq, password => \*(Aqbar\*(Aq}); .Ve .PP Special arguments are: .IP "arg_lit" 4 .IX Item "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. .IP "strict_args" 4 .IX Item "strict_args" If true, args override args provided by user. .IP "returns_objects" 4 .IX Item "returns_objects" If true, bless returned hashrefs before returning them. .IP "merge_back" 4 .IX Item "merge_back" If true, merges the first record back to the \f(CW$self\fR at the end before returning, and returns \f(CW$self\fR. 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. .SH "AUTHOR" .IX Header "AUTHOR" Chris Travers, \f(CW\*(C`\*(C'\fR .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to \f(CW\*(C`bug\-pgobject\-util\-dbmethod at rt.cpan.org\*(C'\fR, or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. .SH "SUPPORT" .IX Header "SUPPORT" You can find documentation for this module with the perldoc command. .PP .Vb 1 \& perldoc PGObject::Util::DBMethod .Ve .PP You can also look for information at: .IP "\(bu" 4 \&\s-1RT: CPAN\s0's request tracker (report bugs here) .Sp .IP "\(bu" 4 AnnoCPAN: Annotated \s-1CPAN\s0 documentation .Sp .IP "\(bu" 4 \&\s-1CPAN\s0 Ratings .Sp .IP "\(bu" 4 Search \s-1CPAN\s0 .Sp .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2014 Chris Travers. .PP This program is released under the following license: \s-1BSD\s0