[Jifty-commit] r3742 - in jifty/trunk: lib/Jifty/Plugin lib/Jifty/Plugin/UUID t/TestApp/lib/TestApp/Model t/TestApp/t

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Jul 30 20:38:34 EDT 2007


Author: jesse
Date: Mon Jul 30 20:38:33 2007
New Revision: 3742

Added:
   jifty/trunk/lib/Jifty/Plugin/UUID/
   jifty/trunk/lib/Jifty/Plugin/UUID.pm
   jifty/trunk/lib/Jifty/Plugin/UUID/Widget.pm
Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/t/TestApp/lib/TestApp/Model/User.pm
   jifty/trunk/t/TestApp/t/05-editactions-Record.t
   jifty/trunk/t/TestApp/t/config-Record

Log:
 r64932 at pinglin:  jesse | 2007-07-30 20:37:16 -0400
 * First cut of a UUID column plugin, with a basic test in the user model


Added: jifty/trunk/lib/Jifty/Plugin/UUID.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/UUID.pm	Mon Jul 30 20:38:33 2007
@@ -0,0 +1,46 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::UUID;
+use base qw/Jifty::Plugin Class::Accessor::Fast/;
+
+=head1 NAME
+
+Jifty::Plugin::UUID
+
+=head1 SYNOPSIS
+
+In your model class schema description, add the following:
+
+    column photo => is UUID;
+
+
+=head1 DESCRIPTION
+
+This plugin provides user pictures for Jifty;
+
+
+=cut
+
+use Jifty::DBI::Schema;
+use Data::UUID;
+use Scalar::Defer;
+my $UUID_GEN = Data::UUID->new();
+
+my $UUID = lazy { $UUID_GEN->create_str() } ;
+sub _uuid {
+    my ($column, $from) = @_;
+    $column->readable(1);
+    $column->writable(1);
+    $column->default($UUID);
+    $column->type('varchar(32)');
+}
+
+Jifty::DBI::Schema->register_types(
+    UUID => sub {  _init_handler is \&_uuid,  render_as 'Jifty::Plugin::UUID::Widget'},
+);
+
+
+
+
+1;

Added: jifty/trunk/lib/Jifty/Plugin/UUID/Widget.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/UUID/Widget.pm	Mon Jul 30 20:38:33 2007
@@ -0,0 +1,43 @@
+use strict;
+use warnings;
+
+
+package Jifty::Plugin::UUID::Widget;
+
+use base qw/Jifty::Web::Form::Field/;
+
+=head1 NAME
+
+Jifty::Plugin::UUID::Widget - 
+
+=head1 METHODS
+
+
+=cut
+
+sub accessors { shift->SUPER::accessors() };
+
+=head2 render_widget
+
+Renders form fields as a uuid;
+
+=cut
+
+sub render_widget {
+    warn "Rendering form field";
+    my $self     = shift;
+    my $action   = $self->action;
+    my $readonly = 1;
+    
+        my $name = $self->name;
+    if ( $action->record->$name() ) {
+        Jifty->web->out(  $action->record->$name() );
+    } else { 
+        Jifty->web->out("<i>"._('No value yet')."</i>");
+
+    }
+    '';
+}
+
+
+1;

Modified: jifty/trunk/t/TestApp/lib/TestApp/Model/User.pm
==============================================================================
--- jifty/trunk/t/TestApp/lib/TestApp/Model/User.pm	(original)
+++ jifty/trunk/t/TestApp/lib/TestApp/Model/User.pm	Mon Jul 30 20:38:33 2007
@@ -34,6 +34,7 @@
   is immutable,
   default is defer { DateTime->now },
   filters are 'Jifty::DBI::Filter::DateTime';
+column 'uuid' => is UUID;
 };
 
 

Modified: jifty/trunk/t/TestApp/t/05-editactions-Record.t
==============================================================================
--- jifty/trunk/t/TestApp/t/05-editactions-Record.t	(original)
+++ jifty/trunk/t/TestApp/t/05-editactions-Record.t	Mon Jul 30 20:38:33 2007
@@ -7,12 +7,12 @@
 use Jifty::SubTest;
 BEGIN { $ENV{'JIFTY_CONFIG'} = 't/config-Record' }
 
-use Jifty::Test tests => 10;
+use Jifty::Test tests => 11;
 use Jifty::Test::WWW::Mechanize;
-
 # Make sure we can load the model
 use_ok('TestApp::Model::User');
 
+Jifty->new();
 # Grab a system use
 my $system_user = TestApp::CurrentUser->superuser;
 ok($system_user, "Found a system user");
@@ -38,8 +38,9 @@
 $o->load($id);
 ok($id, "Load returned success");
 
+
 is($o->email, 'newemail at example.com', "Email was updated by form");
 is($o->tasty, 1, "User is still tasty (was not updated since immutable)");
-
+ok($o->uuid,  "The user has a uuid ". $o->uuid);
 1;
 

Modified: jifty/trunk/t/TestApp/t/config-Record
==============================================================================
--- jifty/trunk/t/TestApp/t/config-Record	(original)
+++ jifty/trunk/t/TestApp/t/config-Record	Mon Jul 30 20:38:33 2007
@@ -2,3 +2,5 @@
 framework:
   Database:
     RecordBaseClass: Jifty::DBI::Record
+  Plugins:
+    - UUID: {}


More information about the Jifty-commit mailing list