[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