[Jifty-commit] r3443 - in jifty/trunk: examples/Yada/etc examples/Yada/lib/Yada examples/Yada/lib/Yada/View

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Jun 11 05:36:09 EDT 2007


Author: clkao
Date: Mon Jun 11 05:36:08 2007
New Revision: 3443

Modified:
   jifty/trunk/examples/Yada/etc/config.yml
   jifty/trunk/examples/Yada/lib/Yada/View.pm
   jifty/trunk/examples/Yada/lib/Yada/View/Todo.pm
   jifty/trunk/lib/Jifty/View/Declare/CRUD.pm

Log:
Helper method for mounting crud view.

Modified: jifty/trunk/examples/Yada/etc/config.yml
==============================================================================
--- jifty/trunk/examples/Yada/etc/config.yml	(original)
+++ jifty/trunk/examples/Yada/etc/config.yml	Mon Jun 11 05:36:08 2007
@@ -5,11 +5,11 @@
   AdminMode: 1
   SkipAccessControl: 1
   ApplicationClass: Yada
-  ApplicationName: Example-Todo
+  ApplicationName: Yada
   ApplicationUUID: 80DF397A-D999-11DB-B80A-9318EBB6763A
   Database: 
     CheckSchema: 1
-    Database: example_todo
+    Database: yada
     Driver: SQLite
     Host: localhost
     Password: ''

Modified: jifty/trunk/examples/Yada/lib/Yada/View.pm
==============================================================================
--- jifty/trunk/examples/Yada/lib/Yada/View.pm	(original)
+++ jifty/trunk/examples/Yada/lib/Yada/View.pm	Mon Jun 11 05:36:08 2007
@@ -10,8 +10,9 @@
     }
 };
 
-require Yada::View::Todo;
-alias Yada::View::Todo under '/todo';
-
+use Jifty::View::Declare::CRUD;
+for (qw/todo/) {
+    Jifty::View::Declare::CRUD->mount_view($_);
+}
 
 1;

Modified: jifty/trunk/examples/Yada/lib/Yada/View/Todo.pm
==============================================================================
--- jifty/trunk/examples/Yada/lib/Yada/View/Todo.pm	(original)
+++ jifty/trunk/examples/Yada/lib/Yada/View/Todo.pm	Mon Jun 11 05:36:08 2007
@@ -3,9 +3,4 @@
 use Jifty::View::Declare -base;
 use base 'Jifty::View::Declare::CRUD';
 
-sub object_type { 'Todo' }
-
-sub fragment_for { return "/todo/$_[1]" }
-
-
 1;

Modified: jifty/trunk/lib/Jifty/View/Declare/CRUD.pm
==============================================================================
--- jifty/trunk/lib/Jifty/View/Declare/CRUD.pm	(original)
+++ jifty/trunk/lib/Jifty/View/Declare/CRUD.pm	Mon Jun 11 05:36:08 2007
@@ -6,6 +6,21 @@
 use base 'Exporter';
 our @EXPORT = qw(object_type fragment_for get_record current_collection);
 
+sub mount_view {
+    my ($class, $model, $vclass, $path) = @_;
+    my $caller = caller(0);
+    $model = ucfirst($model);
+    $vclass ||= $caller.'::'.$model;
+    $path ||= '/'.lc($model);
+
+    Jifty::Util->require($vclass);
+    eval qq{package $caller;
+            alias $vclass under '$path'; 1} or die $@;
+    no strict 'refs';
+    *{$vclass."::fragment_base_path"} = sub { "/$path" };
+    *{$vclass."::object_type"} = sub { $model };
+}
+
 sub object_type {
     my $self = shift;
     return $self->package_variable('object_type') || get('object_type');


More information about the Jifty-commit mailing list