[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