[Rt-commit] r19031 - in rt/3.999/trunk: lib/RT lib/RT/Lorzy t/lorzy

clkao at bestpractical.com clkao at bestpractical.com
Thu Apr 2 09:32:25 EDT 2009


Author: clkao
Date: Thu Apr  2 09:32:24 2009
New Revision: 19031

Modified:
   rt/3.999/trunk/lib/RT/Lorzy.pm
   rt/3.999/trunk/lib/RT/Lorzy/Dispatcher.pm
   rt/3.999/trunk/lib/RT/Model/Rule.pm
   rt/3.999/trunk/t/lorzy/action.t

Log:
- fix lorzy/action.t
- change model::rule column names to avoid reserve words for mysql.

Modified: rt/3.999/trunk/lib/RT/Lorzy.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Lorzy.pm	(original)
+++ rt/3.999/trunk/lib/RT/Lorzy.pm	Thu Apr  2 09:32:24 2009
@@ -95,6 +95,15 @@
 sub make_factory {
     my $class = shift;
     my $self = $class->SUPER::new(@_);
+
+    if (ref($self->condition) eq 'CODE') {
+        # XXX: signature compat check
+        $self->condition( Lorzy::Lambda::Native->new( body => $self->condition,
+                                                   signature => 
+        { ticket => Lorzy::FunctionArgument->new( name => 'ticket', type => 'RT::Model::Ticket' ),
+          transaction => Lorzy::FunctionArgument->new( name => 'transaction', type => 'RT::Model::Transaction' ) }
+        ) );
+    }
     if (ref($self->action) eq 'CODE') {
         # XXX: signature compat check
         $self->action( Lorzy::Lambda::Native->new( body => $self->action,

Modified: rt/3.999/trunk/lib/RT/Lorzy/Dispatcher.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Lorzy/Dispatcher.pm	(original)
+++ rt/3.999/trunk/lib/RT/Lorzy/Dispatcher.pm	Thu Apr  2 09:32:24 2009
@@ -5,6 +5,7 @@
 
 sub reset_rules {
     my $rules = RT::Model::RuleCollection->new( current_user => RT::CurrentUser->superuser);
+    $rules->unlimit;
     for (@$rules) {
         $_->delete;
     }
@@ -15,9 +16,9 @@
     $rules->unlimit;
     return [ map {
         RT::Lorzy::RuleFactory->make_factory(
-            { condition     => Jifty::YAML::Load($_->condition),
-              prepare       => Jifty::YAML::Load($_->prepare),
-              action        => Jifty::YAML::Load($_->action),
+            { condition     => Jifty::YAML::Load($_->condition_code),
+              prepare       => Jifty::YAML::Load($_->prepare_code),
+              action        => Jifty::YAML::Load($_->action_code),
               description   => $_->description,
               _stage        => 'transaction_create' })
         } @$rules];

Modified: rt/3.999/trunk/lib/RT/Model/Rule.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Model/Rule.pm	(original)
+++ rt/3.999/trunk/lib/RT/Model/Rule.pm	Thu Apr  2 09:32:24 2009
@@ -65,9 +65,9 @@
 sub table {'Rules'}
 use Jifty::DBI::Schema;
 use Jifty::DBI::Record schema {
-    column action    => type is 'text';
-    column condition => type is 'text';
-    column prepare   => type is 'text';
+    column action_code    => type is 'text';
+    column condition_code => type is 'text';
+    column prepare_code   => type is 'text';
     column description               => type is 'text';
 };
 use Jifty::Plugin::ActorMetadata::Mixin::Model::ActorMetadata map => {
@@ -79,7 +79,7 @@
 
 sub create_from_factory {
     my ($self, $factory) = @_;
-    my %args = map { $_ => Jifty::YAML::Dump( $factory->$_ ) }
+    my %args = map { $_.'_code' => Jifty::YAML::Dump( $factory->$_ ) }
         qw(action condition prepare );
     $self->SUPER::create( %args,
                           description => $factory->description );

Modified: rt/3.999/trunk/t/lorzy/action.t
==============================================================================
--- rt/3.999/trunk/t/lorzy/action.t	(original)
+++ rt/3.999/trunk/t/lorzy/action.t	Thu Apr  2 09:32:24 2009
@@ -54,7 +54,8 @@
 
 RT::Lorzy::Dispatcher->reset_rules;
 
-RT::Lorzy::Dispatcher->add_rule(
+my $rule = RT::Model::Rule->new( current_user => RT->system_user );
+$rule->create_from_factory( 
     RT::Lorzy::RuleFactory->make_factory
     ( { condition => $on_created,
         _stage => 'transaction_create',


More information about the Rt-commit mailing list