[Jifty-commit] r1279 - in jifty/trunk: . lib/Jifty lib/Jifty/Script plugins/EmailErrors plugins/EmailErrors/doc plugins/EmailErrors/lib plugins/EmailErrors/lib/Jifty plugins/EmailErrors/lib/Jifty/Plugin plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Action plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Tue Jun 13 19:11:01 EDT 2006


Author: alexmv
Date: Tue Jun 13 19:11:00 2006
New Revision: 1279

Added:
   jifty/trunk/plugins/EmailErrors/
   jifty/trunk/plugins/EmailErrors/Makefile.PL
   jifty/trunk/plugins/EmailErrors/doc/
   jifty/trunk/plugins/EmailErrors/doc/site_config.yml
   jifty/trunk/plugins/EmailErrors/lib/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Action/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Model/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/
   jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm
Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Plugin.pm
   jifty/trunk/lib/Jifty/Script/Plugin.pm

Log:
 r13892 at zoq-fot-pik:  chmrr | 2006-06-13 19:10:50 -0400
  * EmailErrors plugin


Modified: jifty/trunk/lib/Jifty/Plugin.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin.pm	Tue Jun 13 19:11:00 2006
@@ -96,7 +96,7 @@
 sub template_root {
     my $self = shift;
     my $class = ref($self) || $self;
-    my $share = File::ShareDir::module_dir($class);
+    my $share = eval { File::ShareDir::module_dir($class) };
     return unless $share;
     return "$share/web/templates";
 }
@@ -110,7 +110,7 @@
 sub static_root {
     my $self = shift;
     my $class = ref($self) || $self;
-    my $share = File::ShareDir::module_dir($class);
+    my $share = eval { File::ShareDir::module_dir($class) };
     return unless $share;
     return "$share/web/static";
 }

Modified: jifty/trunk/lib/Jifty/Script/Plugin.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Script/Plugin.pm	(original)
+++ jifty/trunk/lib/Jifty/Script/Plugin.pm	Tue Jun 13 19:11:00 2006
@@ -110,6 +110,7 @@
 
 # Put any plugin-specific dispatcher rules here.
 
+1;
 EOT
 }
 

Added: jifty/trunk/plugins/EmailErrors/Makefile.PL
==============================================================================
--- (empty file)
+++ jifty/trunk/plugins/EmailErrors/Makefile.PL	Tue Jun 13 19:11:00 2006
@@ -0,0 +1,6 @@
+use inc::Module::Install;
+name('Jifty-Plugin-EmailErrors');
+version('0.01');
+requires('Jifty' => '0.60507');
+
+WriteAll;

Added: jifty/trunk/plugins/EmailErrors/doc/site_config.yml
==============================================================================
--- (empty file)
+++ jifty/trunk/plugins/EmailErrors/doc/site_config.yml	Tue Jun 13 19:11:00 2006
@@ -0,0 +1,7 @@
+---
+framework:
+  Plugins:
+   - EmailErrors:
+       to: email-address at example.com
+       from: other-email at example.com
+       subject: Defaults to 'Jifty error'

Added: jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm	Tue Jun 13 19:11:00 2006
@@ -0,0 +1,18 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::EmailErrors;
+use base qw/Jifty::Plugin/;
+
+# Your plugin goes here.  If takes any configuration or arguments, you
+# probably want to override L<Jifty::Plugin/init>.
+
+sub init {
+    my $self = shift;
+    my %args = @_;
+    $Jifty::Plugin::EmailErrors::Notification::EmailError::TO = $args{to}     || 'nobody at localhost';
+    $Jifty::Plugin::EmailErrors::Notification::EmailError::FROM = $args{from} || 'nobody at localhost';
+    $Jifty::Plugin::EmailErrors::Notification::EmailError::SUBJECT = $args{subject} || 'Jifty error';
+}
+
+1;

Added: jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm	Tue Jun 13 19:11:00 2006
@@ -0,0 +1,13 @@
+use strict;
+use warnings;
+
+package Jifty::Plugin::EmailErrors::Dispatcher;
+use Jifty::Dispatcher -base;
+
+after '/__jifty/error/mason_internal_error', run {
+    return if already_run;
+    return unless Jifty->web->request->continuation;
+    Jifty::Plugin::EmailErrors::Notification::EmailError->new->send;
+};
+
+1;

Added: jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm	Tue Jun 13 19:11:00 2006
@@ -0,0 +1,33 @@
+use warnings;
+use strict;
+
+package Jifty::Plugin::EmailErrors::Notification::EmailError;
+use base qw/Jifty::Notification/;
+
+sub setup {
+    my $self = shift;
+    
+    my $cont = Jifty->web->request->continuation;
+    my $e    = $cont->response->error;
+    my $msg  = $e->message;
+    $msg =~ s/, <\S+> (line|chunk) \d+\././;
+
+    my $info  = $e->analyze_error;
+    my $file  = $info->{file};
+    my @lines = @{ $info->{lines} };
+    my @stack = @{ $info->{frames} };
+
+    $self->to( $Jifty::Plugin::EmailErrors::Notification::EmailError::TO );
+    $self->from( $Jifty::Plugin::EmailErrors::Notification::EmailError::FROM );
+    $self->subject( $Jifty::Plugin::EmailErrors::Notification::EmailError::SUBJECT );
+
+    my $body;
+    $body = "Error in $file, line @lines\n$msg\n";
+    for my $frame (@stack) {
+        next if $frame->filename =~ m{/HTML/Mason/};
+        $body .= "  ".$frame->filename.", line ".$frame->line."\n";
+    }
+    $self->body($body);
+}
+
+1;


More information about the Jifty-commit mailing list