1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

define_attr_method should be able to define methods that returns nil

This commit is contained in:
Santiago Pastorino 2011-03-17 23:17:20 -03:00
parent 4532b39f5f
commit 445241d713
2 changed files with 4 additions and 2 deletions

View file

@ -106,8 +106,8 @@ module ActiveModel
if block_given? if block_given?
sing.send :define_method, name, &block sing.send :define_method, name, &block
else else
value = value.nil? ? 'nil' : value.to_s value = value.to_s if value
sing.send(:define_method, name) { value.dup } sing.send(:define_method, name) { value && value.dup }
end end
end end

View file

@ -115,6 +115,8 @@ class AttributeMethodsTest < ActiveModel::TestCase
assert_respond_to ModelWithAttributes, :bar assert_respond_to ModelWithAttributes, :bar
assert_equal "original bar", ModelWithAttributes.original_bar assert_equal "original bar", ModelWithAttributes.original_bar
assert_equal "bar", ModelWithAttributes.bar assert_equal "bar", ModelWithAttributes.bar
ModelWithAttributes.define_attr_method(:bar)
assert !ModelWithAttributes.bar
end end
test '#define_attr_method generates attribute method with invalid identifier characters' do test '#define_attr_method generates attribute method with invalid identifier characters' do