Created
November 29, 2010 14:15
-
-
Save spastorino/719992 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb | |
index 6076aaf..b859650 100644 | |
--- a/activerecord/lib/active_record/base.rb | |
+++ b/activerecord/lib/active_record/base.rb | |
@@ -1365,7 +1365,7 @@ MSG | |
def initialize(attributes = nil) | |
@attributes = attributes_from_column_definition | |
@attributes_cache = {} | |
- @new_record = true | |
+ @persisted = false | |
@readonly = false | |
@destroyed = false | |
@marked_for_destruction = false | |
@@ -1396,7 +1396,7 @@ MSG | |
@attributes = coder['attributes'] | |
@attributes_cache, @previously_changed, @changed_attributes = {}, {}, {} | |
@readonly = @destroyed = @marked_for_destruction = false | |
- @new_record = false | |
+ @persisted = true | |
_run_find_callbacks | |
_run_initialize_callbacks | |
end | |
@@ -1622,7 +1622,7 @@ MSG | |
clear_aggregation_cache | |
clear_association_cache | |
@attributes_cache = {} | |
- @new_record = true | |
+ @persisted = false | |
ensure_proper_type | |
populate_with_current_scope_attributes | |
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb | |
index 75dba02..ccca98f 100644 | |
--- a/activerecord/lib/active_record/persistence.rb | |
+++ b/activerecord/lib/active_record/persistence.rb | |
@@ -4,7 +4,7 @@ module ActiveRecord | |
# Returns true if this object hasn't been saved yet -- that is, a record | |
# for the object doesn't exist in the data store yet; otherwise, returns false. | |
def new_record? | |
- @new_record | |
+ !@persisted | |
end | |
# Returns true if this object has been destroyed, otherwise returns false. | |
@@ -15,7 +15,7 @@ module ActiveRecord | |
# Returns if the record is persisted, i.e. it's not a new record and it was | |
# not destroyed. | |
def persisted? | |
- !(new_record? || destroyed?) | |
+ @persisted && !destroyed? | |
end | |
# Saves the model. | |
@@ -94,7 +94,7 @@ module ActiveRecord | |
became = klass.new | |
became.instance_variable_set("@attributes", @attributes) | |
became.instance_variable_set("@attributes_cache", @attributes_cache) | |
- became.instance_variable_set("@new_record", new_record?) | |
+ became.instance_variable_set("@persisted", @persisted) | |
became.instance_variable_set("@destroyed", destroyed?) | |
became.type = klass.name unless self.class.descends_from_active_record? | |
became | |
@@ -270,7 +270,7 @@ module ActiveRecord | |
self.id ||= new_id | |
- @new_record = false | |
+ @persisted = true | |
id | |
end | |
diff --git a/activerecord/lib/active_record/session_store.rb b/activerecord/lib/active_record/session_store.rb | |
index 3400fd6..05e18d5 100644 | |
--- a/activerecord/lib/active_record/session_store.rb | |
+++ b/activerecord/lib/active_record/session_store.rb | |
@@ -228,7 +228,7 @@ module ActiveRecord | |
@session_id = attributes[:session_id] | |
@data = attributes[:data] | |
@marshaled_data = attributes[:marshaled_data] | |
- @new_record = @marshaled_data.nil? | |
+ @persisted = !@marshaled_data.nil? | |
end | |
# Lazy-unmarshal session state. | |
@@ -252,8 +252,8 @@ module ActiveRecord | |
marshaled_data = self.class.marshal(data) | |
connect = connection | |
- if @new_record | |
- @new_record = false | |
+ if !@persisted | |
+ @npersisted = false | |
connect.update <<-end_sql, 'Create session' | |
INSERT INTO #{table_name} ( | |
#{connect.quote_column_name(session_id_column)}, | |
@@ -272,7 +272,7 @@ module ActiveRecord | |
end | |
def destroy | |
- return if @new_record | |
+ return unless @persisted | |
connect = connection | |
connect.delete <<-end_sql, 'Destroy session' | |
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb | |
index 654c475..20da6f4 100644 | |
--- a/activerecord/lib/active_record/transactions.rb | |
+++ b/activerecord/lib/active_record/transactions.rb | |
@@ -243,7 +243,7 @@ module ActiveRecord | |
with_transaction_returning_status { super } | |
end | |
- # Reset id and @new_record if the transaction rolls back. | |
+ # Reset id and @persisted if the transaction rolls back. | |
def rollback_active_record_state! | |
remember_transaction_record_state | |
yield | |
@@ -298,9 +298,9 @@ module ActiveRecord | |
# Save the new record state and id of a record so it can be restored later if a transaction fails. | |
def remember_transaction_record_state #:nodoc | |
@_start_transaction_state ||= {} | |
- unless @_start_transaction_state.include?(:new_record) | |
+ unless @_start_transaction_state.include?(:persisted) | |
@_start_transaction_state[:id] = id if has_attribute?(self.class.primary_key) | |
- @_start_transaction_state[:new_record] = @new_record | |
+ @_start_transaction_state[:persisted] = @persisted | |
end | |
unless @_start_transaction_state.include?(:destroyed) | |
@_start_transaction_state[:destroyed] = @destroyed | |
@@ -324,7 +324,7 @@ module ActiveRecord | |
restore_state = remove_instance_variable(:@_start_transaction_state) | |
if restore_state | |
@attributes = @attributes.dup if @attributes.frozen? | |
- @new_record = restore_state[:new_record] | |
+ @persisted = restore_state[:persisted] | |
@destroyed = restore_state[:destroyed] | |
if restore_state[:id] | |
self.id = restore_state[:id] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment