From bc0f5373150d267d7e954bce8108f06719d15c6e Mon Sep 17 00:00:00 2001 From: Ben Simpson Date: Mon, 26 Jul 2010 21:47:46 -0400 Subject: [PATCH] Added a "revisable_changes" column to the model being revised Column records information generated from ActiveRecord's instance class "changes" on save --- .../revisable_migration/revisable_migration_generator.rb | 3 ++- lib/acts_as_revisable/acts/revisable.rb | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/generators/revisable_migration/revisable_migration_generator.rb b/generators/revisable_migration/revisable_migration_generator.rb index 4e2d6a1..f1b40ea 100644 --- a/generators/revisable_migration/revisable_migration_generator.rb +++ b/generators/revisable_migration/revisable_migration_generator.rb @@ -10,7 +10,8 @@ def manifest ["revisable_current_at", "datetime"], ["revisable_revised_at", "datetime"], ["revisable_deleted_at", "datetime"], - ["revisable_is_current", "boolean", 1] + ["revisable_is_current", "boolean", 1], + ["revisable_changes", "string"] ] m.migration_template 'migration.rb', 'db/migrate', diff --git a/lib/acts_as_revisable/acts/revisable.rb b/lib/acts_as_revisable/acts/revisable.rb index ac4d1ba..f970b79 100644 --- a/lib/acts_as_revisable/acts/revisable.rb +++ b/lib/acts_as_revisable/acts/revisable.rb @@ -24,8 +24,10 @@ class << base base.class_inheritable_hash :revisable_shared_objects base.revisable_shared_objects = {} + base.instance_eval do attr_accessor :revisable_new_params, :revisable_revision + serialize :revisable_changes define_callbacks :before_revise, :after_revise, :before_revert, :after_revert, :before_changeset, :after_changeset, :after_branch_created @@ -296,6 +298,7 @@ def save(*args) #:nodoc: def before_revisable_create #:nodoc: self[:revisable_is_current] = true self.revision_number ||= 0 + self.revisable_changes = self.changes end # Checks whether or not a +Revisable+ should be revised. @@ -319,6 +322,7 @@ def before_revisable_update #:nodoc: return false end + self.revisable_changes = self.changes self.revisable_revision = self.to_revision end