diff options
author | Benjamin Kellermann <Benjamin.Kellermann@gmx.de> | 2009-11-23 15:58:49 +0100 |
---|---|---|
committer | Benjamin Kellermann <Benjamin.Kellermann@gmx.de> | 2009-11-23 15:58:49 +0100 |
commit | 19409f822c901b4935b07493d741d479fbc119a0 (patch) | |
tree | c971ca940ebf21d0fe103a1be9276e88f85396f3 /log.rb | |
parent | fc936f76f65db94469959883c8ef2926ff0e779b (diff) |
started to implement undo, added flatten option
Diffstat (limited to 'log.rb')
-rw-r--r-- | log.rb | 23 |
1 files changed, 20 insertions, 3 deletions
@@ -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 = "<table><tr><th>Version</th><th>Date</th><th>Comment</th></tr>" - 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 += "</table>" 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 |