aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-11-28 20:12:49 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-11-28 20:12:49 +0000
commita33007d31a539ef5365ee13455f386c4e0b658fe (patch)
tree5da5437d968fd729f764e983e4467aa7e9a148ff /activerecord
parentf1d6a0e4d25ad67fead3ed215495adcf08332c80 (diff)
downloadrails-a33007d31a539ef5365ee13455f386c4e0b658fe.tar.gz
rails-a33007d31a539ef5365ee13455f386c4e0b658fe.tar.bz2
rails-a33007d31a539ef5365ee13455f386c4e0b658fe.zip
attr_readonly uses a set of strings instead of an array of symbols internally. References #10300.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8230 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rwxr-xr-xactiverecord/lib/active_record/base.rb4
-rwxr-xr-xactiverecord/test/base_test.rb2
-rw-r--r--activerecord/test/locking_test.rb2
3 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 991d8b040c..eea83ecbbf 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -672,7 +672,7 @@ module ActiveRecord #:nodoc:
# Attributes listed as readonly can be set for a new record, but will be ignored in database updates afterwards.
def attr_readonly(*attributes)
- write_inheritable_array("attr_readonly", attributes - (readonly_attributes || []))
+ write_inheritable_attribute("attr_readonly", Set.new(attributes.map(&:to_s)) + (readonly_attributes || []))
end
# Returns an array of all the attributes that have been specified as readonly.
@@ -2103,7 +2103,7 @@ module ActiveRecord #:nodoc:
# Removes attributes which have been marked as readonly.
def remove_readonly_attributes(attributes)
unless self.class.readonly_attributes.nil?
- attributes.delete_if { |key, value| self.class.readonly_attributes.include?(key.gsub(/\(.+/,"").intern) }
+ attributes.delete_if { |key, value| self.class.readonly_attributes.include?(key.gsub(/\(.+/,"")) }
else
attributes
end
diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb
index a95ee7cd8a..6fac80b2c4 100755
--- a/activerecord/test/base_test.rb
+++ b/activerecord/test/base_test.rb
@@ -856,7 +856,7 @@ class BasicsTest < Test::Unit::TestCase
end
def test_readonly_attributes
- assert_equal [ :title ], ReadonlyTitlePost.readonly_attributes
+ assert_equal Set.new([ 'title' ]), ReadonlyTitlePost.readonly_attributes
post = ReadonlyTitlePost.create(:title => "cannot change this", :body => "changeable")
post.reload
diff --git a/activerecord/test/locking_test.rb b/activerecord/test/locking_test.rb
index b0d6f8417f..97fbfaaeb1 100644
--- a/activerecord/test/locking_test.rb
+++ b/activerecord/test/locking_test.rb
@@ -99,7 +99,7 @@ class OptimisticLockingTest < Test::Unit::TestCase
end
def test_readonly_attributes
- assert_equal [ :first_name ], ReadonlyFirstNamePerson.readonly_attributes
+ assert_equal Set.new([ 'first_name' ]), ReadonlyFirstNamePerson.readonly_attributes
p = ReadonlyFirstNamePerson.create(:first_name => "unchangeable name")
p.reload