[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