From 2c80f9bcc4a0f3e24920b6e5d03be5f560c85ebf Mon Sep 17 00:00:00 2001 From: Toks Date: Tue, 13 Aug 2013 13:15:07 -0400 Subject: [PATCH] fixes #357 --- app/models/post_version.rb | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/app/models/post_version.rb b/app/models/post_version.rb index c8abfcd00..ed6140b0c 100644 --- a/app/models/post_version.rb +++ b/app/models/post_version.rb @@ -105,6 +105,30 @@ class PostVersion < ActiveRecord::Base } end + def changes + @changes ||= diff(previous) + end + + def added_tags + changes[:added_tags].join(" ") + end + + def removed_tags + changes[:removed_tags].join(" ") + end + + def obsolete_added_tags + changes[:obsolete_added_tags].join(" ") + end + + def obsolete_removed_tags + changes[:obsolete_removed_tags].join(" ") + end + + def unchanged_tags + changes[:unchanged_tags].join(" ") + end + def previous PostVersion.where("post_id = ? and updated_at < ?", post_id, updated_at).order("updated_at desc").first end @@ -141,4 +165,23 @@ class PostVersion < ActiveRecord::Base undo post.save! end + + def serializable_hash(options = {}) + options ||= {} + options[:except] ||= [] + options[:except] += hidden_attributes + unless options[:builder] + options[:methods] ||= [] + options[:methods] += [:added_tags, :removed_tags, :obsolete_added_tags, :obsolete_removed_tags, :unchanged_tags] + end + hash = super(options) + hash + end + + def to_xml(options = {}, &block) + options ||= {} + options[:methods] ||= [] + options[:methods] += [:added_tags, :removed_tags, :obsolete_added_tags, :obsolete_removed_tags, :unchanged_tags] + super(options, &block) + end end