[Jifty-commit] r7307 - in JiftyX-ModelHelpers/trunk: lib/JiftyX

Jifty commits jifty-commit at lists.jifty.org
Sun Jul 12 23:03:12 EDT 2009


Author: c9s
Date: Sun Jul 12 23:03:11 2009
New Revision: 7307

Modified:
   JiftyX-ModelHelpers/trunk/lib/JiftyX/ModelHelpers.pm
   JiftyX-ModelHelpers/trunk/t/Simapp/t/m-helper.t

Log:
 - let modelhelper function M knows how to load jifty model class for session or metadata.
 - load jifty full-qualified classname model class directly.

Modified: JiftyX-ModelHelpers/trunk/lib/JiftyX/ModelHelpers.pm
==============================================================================
--- JiftyX-ModelHelpers/trunk/lib/JiftyX/ModelHelpers.pm	(original)
+++ JiftyX-ModelHelpers/trunk/lib/JiftyX/ModelHelpers.pm	Sun Jul 12 23:03:11 2009
@@ -11,8 +11,14 @@
 
 sub M {
     my ($model, @params) = @_;
+
+    my $class;
+    $class ||= $model if( $model =~ /^Jifty::/ );
+    $class ||= "Jifty::Model::$model" if ( $model =~ /^(?:Session|Metadata|)(?:Collection)?$/ );
+    $class ||= Jifty->app_class( Model => $model );
+
     unless (@params) {
-        my $record = Jifty->app_class(Model => $model)->new();
+        my $record = $class->new();
         $record->unlimit if index($model, "Collection") > 0;
         return $record;
     }
@@ -23,7 +29,7 @@
         $params_to_new = {};
     }
 
-    my $record = Jifty->app_class(Model => $model)->new(%$params_to_new);
+    my $record = $class->new(%$params_to_new);
     if (@params) {
         if (index($model, "Collection") > 0) {
             my %params = (@params);

Modified: JiftyX-ModelHelpers/trunk/t/Simapp/t/m-helper.t
==============================================================================
--- JiftyX-ModelHelpers/trunk/t/Simapp/t/m-helper.t	(original)
+++ JiftyX-ModelHelpers/trunk/t/Simapp/t/m-helper.t	Sun Jul 12 23:03:11 2009
@@ -2,11 +2,26 @@
 use warnings;
 use strict;
 
-use Jifty::Test::Dist tests => 11;
+use Jifty::Test::Dist tests => 14;
 use JiftyX::ModelHelpers qw(M);
 use Simapp::Model::Book;
 
 {
+    my $m = M('Metadata');
+    is( ref( $m ) , 'Jifty::Model::Metadata' );
+}
+
+{
+    my $s = M('Session');
+    is( ref( $s ) , 'Jifty::Model::Session' );
+}
+
+{
+    my $s = M('SessionCollection');
+    is( ref( $s ) , 'Jifty::Model::SessionCollection' );
+}
+
+{
     my $b = M("Book");
     is( ref($b), "Simapp::Model::Book" );
 }


More information about the Jifty-commit mailing list