Changeset 8230
- Timestamp:
- 11/28/07 20:12:49 (9 months ago)
- Files:
-
- trunk/activerecord/lib/active_record/base.rb (modified) (2 diffs)
- trunk/activerecord/test/base_test.rb (modified) (1 diff)
- trunk/activerecord/test/locking_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/lib/active_record/base.rb
r8120 r8230 673 673 # Attributes listed as readonly can be set for a new record, but will be ignored in database updates afterwards. 674 674 def attr_readonly(*attributes) 675 write_inheritable_a rray("attr_readonly", attributes -(readonly_attributes || []))675 write_inheritable_attribute("attr_readonly", Set.new(attributes.map(&:to_s)) + (readonly_attributes || [])) 676 676 end 677 677 … … 2104 2104 def remove_readonly_attributes(attributes) 2105 2105 unless self.class.readonly_attributes.nil? 2106 attributes.delete_if { |key, value| self.class.readonly_attributes.include?(key.gsub(/\(.+/,"") .intern) }2106 attributes.delete_if { |key, value| self.class.readonly_attributes.include?(key.gsub(/\(.+/,"")) } 2107 2107 else 2108 2108 attributes trunk/activerecord/test/base_test.rb
r8142 r8230 857 857 858 858 def test_readonly_attributes 859 assert_equal [ :title ], ReadonlyTitlePost.readonly_attributes859 assert_equal Set.new([ 'title' ]), ReadonlyTitlePost.readonly_attributes 860 860 861 861 post = ReadonlyTitlePost.create(:title => "cannot change this", :body => "changeable") trunk/activerecord/test/locking_test.rb
r8156 r8230 100 100 101 101 def test_readonly_attributes 102 assert_equal [ :first_name ], ReadonlyFirstNamePerson.readonly_attributes102 assert_equal Set.new([ 'first_name' ]), ReadonlyFirstNamePerson.readonly_attributes 103 103 104 104 p = ReadonlyFirstNamePerson.create(:first_name => "unchangeable name")