[Jifty-commit] r1603 - in jifty/branches/moose: .

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Jul 17 21:04:45 EDT 2006


Author: audreyt
Date: Mon Jul 17 21:04:45 2006
New Revision: 1603

Added:
   jifty/branches/moose/lib/Jifty/Param/
   jifty/branches/moose/lib/Jifty/Param/Schema.pm
Modified:
   jifty/branches/moose/Makefile.PL

Log:
* Declarative schema landed.

Modified: jifty/branches/moose/Makefile.PL
==============================================================================
--- jifty/branches/moose/Makefile.PL	(original)
+++ jifty/branches/moose/Makefile.PL	Mon Jul 17 21:04:45 2006
@@ -20,6 +20,7 @@
 requires('Email::Send' => '1.99_01'); # Email::Send::Jifty::Test
 requires('Email::Simple');
 requires('Email::Simple::Creator');
+requires('Exporter::Lite');
 requires('File::Find::Rule');
 requires('File::MMagic');
 requires('File::ShareDir');
@@ -43,6 +44,7 @@
 requires('Module::Pluggable' => '2.95');
 requires('Module::Refresh' => '0.09');
 requires('Moose' => '0.11');
+requires('Object::Declare');
 requires('Params::Validate');
 requires('Pod::Simple'); #Pod::Simple::Text
 requires('Scalar::Defer');

Added: jifty/branches/moose/lib/Jifty/Param/Schema.pm
==============================================================================
--- (empty file)
+++ jifty/branches/moose/lib/Jifty/Param/Schema.pm	Mon Jul 17 21:04:45 2006
@@ -0,0 +1,28 @@
+package Jifty::Param::Schema;
+
+use Jifty::I18N;
+use Jifty::Param;
+use Scalar::Defer;
+use Object::Declare ['Jifty::Param'];
+use Exporter::Lite;
+use Class::Data::Inheritable;
+
+our @EXPORT = qw( defer lazy param schema from );
+
+sub schema (&) {
+    my $code = shift;
+    my $from = caller;
+    local *_ = sub {
+        my $args = \@_;
+        defer { local *_; Jifty::I18N->new; _(@$args) };
+    };
+
+    Class::Data::Inheritable::mk_classdata($from => qw/PARAMS/);
+    $from->PARAMS( &declare($code) );
+
+    no strict 'refs';
+    push @{$from . '::ISA'}, 'Jifty::Action';
+    return;
+}
+
+1;


More information about the Jifty-commit mailing list