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