[Jifty-commit] r6096 - wifty/trunk/lib/Wifty/Model

Jifty commits jifty-commit at lists.jifty.org
Fri Dec 12 11:29:33 EST 2008


Author: ruz
Date: Fri Dec 12 11:29:33 2008
New Revision: 6096

Modified:
   wifty/trunk/lib/Wifty/Model/Page.pm
   wifty/trunk/lib/Wifty/Model/Revision.pm

Log:
* add viewer methods in Revison and Page models
* add diff_to, diff_from, _diff methods in Revision model

Modified: wifty/trunk/lib/Wifty/Model/Page.pm
==============================================================================
--- wifty/trunk/lib/Wifty/Model/Page.pm	(original)
+++ wifty/trunk/lib/Wifty/Model/Page.pm	Fri Dec 12 11:29:33 2008
@@ -85,6 +85,11 @@
     return ( $val, $msg );
 }
 
+sub viewer {
+    my $self = shift;
+    return Jifty->web->new_action( class => 'UpdatePage', record => $self );
+}
+
 sub _set {
     my $self = shift;
     my ( $val, $msg ) = $self->SUPER::_set(@_);

Modified: wifty/trunk/lib/Wifty/Model/Revision.pm
==============================================================================
--- wifty/trunk/lib/Wifty/Model/Revision.pm	(original)
+++ wifty/trunk/lib/Wifty/Model/Revision.pm	Fri Dec 12 11:29:33 2008
@@ -90,6 +90,42 @@
     return $revisions->first;
 }
 
+sub diff_from {
+    my $to = shift;
+    my $from = shift;
+    unless ( $from && $from->id ) {
+        $from = $to->previous;
+    }
+    return $to->_diff( $from, $to, @_ );
+}
+
+sub diff_to {
+    my $from = shift;
+    my $to = shift;
+    unless ( $to && $to->id ) {
+        $to = $from->next;
+    }
+    return $from->_diff( $from, $to, @_ );
+}
+
+sub _diff {
+    my $self = shift;
+    my ($from, $to, %opt) = @_;
+    require Text::Diff;
+    return Text::Diff::diff(
+        \( $from? $from->content : '' ),
+        \( $to ? $to->content : '' ),
+        { STYLE => 'Text::Diff::HTML', %opt }
+    );
+}
+
+sub viewer {
+    my $self = shift;
+    my $viewer = $self->page->viewer;
+    $viewer->argument_value( content => $self->content );
+    return $viewer;
+}
+
 =head2 current_user_can RIGHT
 
 We're using L<Jifty::RightsFrom> to pass off ACL decisions to this


More information about the Jifty-commit mailing list