On Sat, 2005-05-14 at 23:19 -0700, Brian Ingerson wrote: > You may, but can't you attach these methods as a pre hook and a post hook to > page:store_content respectively?
I don't think so. > Maybe send a patch of what you want, and I'll see if it might be possible > another way or not. OK, see the attached patch. I want to add a hook before store_content_commit or after store_content_prepare to run "diff -u file.new file | mail ...". -- If you are an American then support http://fairtax.org (Permanently replace 50,000+ pages of tax law with about 200 pages.)
--- .tilde/!usr!local!share!perl!5.8.4!Spoon!ContentObject.pm~ Thu Apr 7
09:07:14 2005
+++ /usr/local/share/perl/5.8.4/Spoon/ContentObject.pm Sun May 15 15:14:37 2005
@@ -72,25 +72,32 @@
sub store {
$self->assert_writable;
- $self->store_content or return;
+ $self->store_content_prepare or return;
+ $self->store_content_commit;
$self->store_metadata;
return if $self->force;
return $self;
}
-sub store_content {
+sub store_content_prepare {
my $content = $self->content;
if ($content) {
$content =~ s/\r//g;
$content =~ s/\n*\z/\n/;
}
- my $file = io->file($self->file_path)->utf8;
+ my $orig = io->file($self->file_path)->utf8;
unless ($self->force) {
- return if $file->exists and
- $content eq $file->all;
+ return if $orig->exists and
+ $content eq $orig->all;
}
- $file->print($content);
+ $content > io($self->file_path.'.new');
return $self;
+}
+
+sub store_content_commit {
+ my $fp = $self->file_path;
+ rename("$fp.new", $fp) or warn "rename $fp.new $fp: $!"; #die?
+ return $self;
}
sub store_metadata {
signature.asc
Description: This is a digitally signed message part
