aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2011-03-16 21:19:35 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2011-03-16 21:20:44 -0300
commitc834a751d2acbd55b580cbba2e96dd29c5d9a452 (patch)
tree423e181f132e2977ac124b83a59032d21ac7bca8 /activemodel/lib
parentfda45f4fc493f5596375199fefe854df24b1ffbf (diff)
downloadrails-c834a751d2acbd55b580cbba2e96dd29c5d9a452.tar.gz
rails-c834a751d2acbd55b580cbba2e96dd29c5d9a452.tar.bz2
rails-c834a751d2acbd55b580cbba2e96dd29c5d9a452.zip
define_attr_method correctly defines methods with invalid identifiers
Diffstat (limited to 'activemodel/lib')
-rw-r--r--activemodel/lib/active_model/attribute_methods.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb
index 2a99450a3d..21ddef6b75 100644
--- a/activemodel/lib/active_model/attribute_methods.rb
+++ b/activemodel/lib/active_model/attribute_methods.rb
@@ -108,9 +108,8 @@ module ActiveModel
else
# use eval instead of a block to work around a memory leak in dev
# mode in fcgi
- sing.class_eval <<-eorb, __FILE__, __LINE__ + 1
- def #{name}; #{value.nil? ? 'nil' : value.to_s.inspect}; end
- eorb
+ value = value.nil? ? 'nil' : value.to_s
+ sing.send(:define_method, name) { value }
end
end