fix #1724 for posts

This commit is contained in:
Toks
2013-06-09 11:40:34 -04:00
parent 99998561b6
commit 2d0c3d16a3
5 changed files with 42 additions and 0 deletions

View File

@@ -112,4 +112,31 @@ class PostVersion < ActiveRecord::Base
def truncated_source
source.gsub(/^http:\/\//, "").sub(/\/.+/, "")
end
def undo
changes = diff(previous)
added = changes[:added_tags] - changes[:obsolete_added_tags]
removed = changes[:removed_tags] - changes[:obsolete_removed_tags]
added.each do |tag|
if tag =~ /^source:/
post.source = ""
else
escaped_tag = Regexp.escape(tag)
post.tag_string = post.tag_string.sub(/(?:\A| )#{escaped_tag}(?:\Z| )/, " ").strip
end
end
removed.each do |tag|
if tag =~ /^source:(.+)$/
post.source = $1
else
post.tag_string = "#{post.tag_string} #{tag}".strip
end
end
end
def undo!
undo
post.save!
end
end