From 19409f822c901b4935b07493d741d479fbc119a0 Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Mon, 23 Nov 2009 15:58:49 +0100 Subject: started to implement undo, added flatten option --- log.rb | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'log.rb') diff --git a/log.rb b/log.rb index fe0d4f5..ca08b9c 100644 --- a/log.rb +++ b/log.rb @@ -78,10 +78,10 @@ class Log @log << LogEntry.new(revision,timestamp,comment) @log.sort!{|a,b| a.rev <=> b.rev} end - def to_html(maxrev, middlerevision) + def to_html(notlinkrevision) ret = "" - self[((middlerevision-5)..(middlerevision+5))].each do |l| - ret += l.to_html(middlerevision != l.rev) + self.each do |l| + ret += l.to_html(notlinkrevision != l.rev) end ret += "
VersionDateComment
" ret @@ -95,6 +95,23 @@ class Log def comment_matches(regex) Log.new(@log.collect{|e| e if e.comment =~ regex}.compact) end + def flatten + h = [] + minrev = min.rev + rev = max.rev + while rev > minrev + elem = self[rev] + prevrev = elem.comment.scan(/^Reverted Poll to revision (\d*)$/).flatten[0] + if prevrev + rev = prevrev.to_i + else + h << elem + rev += -1 + end + end + h.sort!{|a,b| a.rev <=> b.rev} + Log.new(h) + end end if __FILE__ == $0 -- cgit v1.2.3