[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#712408: ITP: libpgobject-simple-perl -- Minimalist stored procedure mapper based on LedgerSMB's DBObject.



Package: wnpp
Severity: wishlist
X-Debbugs-CC: debian-devel@lists.debian.org,debian-perl@lists.debian.org

* Package name    : libpgobject-simple-perl
  Version         : 1.3
  Upstream Author : Chris Travers <chris.travers@gmail.com>
* URL or Web page : http://search.cpan.org/dist/PGObject-Simple/
* License         : BSD (2 clause)
  Description     : PGObject::Simple - Minimalist stored procedure
  mapper based on LedgerSMB's DBObject.

PGObject::Simple a top-half object system for PGObject which is simple
and inspired by (and a subset functionally speaking of) the simple
stored procedure object method system of LedgerSMB 1.3. The framework
discovers stored procedure APIs and dispatches to them and can
therefore be a base for application-specific object models and much
more.

PGObject::Simple is designed to be light-weight and yet robust glue
between your object model and the RDBMS's stored procedures. It works
by looking up the stored procedure arguments, stripping them of the
conventional prefix 'in_', and mapping what is left to object property
names. Properties can be overridden by passing in a hashrefs in the
args named argument. Named arguments there will be used in place of
object properties.

This system is quite flexible, perhaps too much so, and it relies on the
database encapsulating its own logic behind self-documenting stored
procedures using consistent conventions. No function which is expected
to be discovered can be overloaded, and all arguments must be named for
their object properties. For this reason the use of this module
fundamentally changes the contract of the stored procedure from that of
a fixed number of arguments in fixed types contract to one where the
name must be unique and the stored procedures must be coded to the
application's interface. This inverts the way we typically think about
stored procedures and makes them much more application friendly.


Reply to: