From b34f7c1706bbe20c1dc334884f9ba5ae7182f9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Mon, 30 Jun 2014 15:41:41 -0300 Subject: Add CHANGELOG entry for #14861 and document private methods on the API --- activemodel/CHANGELOG.md | 5 +++++ activemodel/lib/active_model/dirty.rb | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index 890e99415f..8bae40d59b 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -1,3 +1,8 @@ +* Added `rollback_changes` method to `ActiveModel::Dirty` API to roolback all the + changed values to the previous data. + + *Igor G.* + * Allow proc and symbol as values for `only_integer` of `NumericalityValidator` *Robin Mehner* diff --git a/activemodel/lib/active_model/dirty.rb b/activemodel/lib/active_model/dirty.rb index 95a3c00d0b..e5bfee2291 100644 --- a/activemodel/lib/active_model/dirty.rb +++ b/activemodel/lib/active_model/dirty.rb @@ -179,19 +179,19 @@ module ActiveModel private # Removes current changes and makes them accessible through +previous_changes+. - def changes_applied + def changes_applied # :doc: @previously_changed = changes @changed_attributes = ActiveSupport::HashWithIndifferentAccess.new end - # Removes all dirty data: current changes and previous changes - def reset_changes + # Removes all dirty data: current changes and previous changes. + def reset_changes # :doc: @previously_changed = ActiveSupport::HashWithIndifferentAccess.new @changed_attributes = ActiveSupport::HashWithIndifferentAccess.new end - # Restore all previous data - def rollback_changes #:doc: + # Restore all previous data. + def rollback_changes # :doc: changed_attributes.each_key { |attr| reset_attribute! attr } end -- cgit v1.2.3