[Jifty-commit] r5803 - in JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk: lib lib/JiftyX
Jifty commits
jifty-commit at lists.jifty.org
Mon Sep 8 09:32:23 EDT 2008
Author: gugod
Date: Mon Sep 8 09:32:23 2008
New Revision: 5803
Added:
JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/lib/
JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/lib/JiftyX/
JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/lib/JiftyX/ModelHelpers.pm
Modified:
JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/ (props changed)
Log:
r23659 at yra: gugod | 2008-09-02 23:09:04 +0800
Import currently working code first.
Added: JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/lib/JiftyX/ModelHelpers.pm
==============================================================================
--- (empty file)
+++ JiftyX-ModelHelpers/branches/JiftyX-ModelHelpers-trunk/lib/JiftyX/ModelHelpers.pm Mon Sep 8 09:32:23 2008
@@ -0,0 +1,48 @@
+package JiftyX::ModelHelpers;
+use strict;
+use Exporter;
+
+our @ISA = qw(Exporter);
+our @EXPORT;
+our $VERSION = "0.01";
+
+if (@EXPORT == 0) {
+ require Jifty::Schema;
+ my @models = map { s/.*::(.+)$/$1/; $_; } Jifty::Schema->new->models;
+
+ no strict 'refs';
+ for my $model (@models) {
+ if ( index($model, "Collection") >= 0) {
+ *{"$model"} = sub {
+ my @args = @_;
+ my $obj = Jifty->app_class(Model => "$model")->new;
+ if (@args == 0) {
+ $obj->unlimit;
+ }
+ elsif (@args % 2 == 0) {
+ my %limits = @args;
+ while( my ($col, $val) = each %limits) {
+ $obj->limit(column => $col, value => $val);
+ }
+ }
+ return $obj;
+ }
+ }
+ else {
+ *{"$model"} = sub {
+ my @args = @_;
+ my $obj = Jifty->app_class(Model => "$model")->new;
+ if (@args == 1) {
+ $obj->load($args[0]);
+ }
+ elsif (@args && @args % 2 == 0) {
+ $obj->load_by_cols(@args);
+ }
+ return $obj;
+ };
+ }
+ push @EXPORT, "&${model}";
+ }
+}
+
+1;
More information about the Jifty-commit
mailing list