aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2011-03-18 13:35:57 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2011-03-22 19:36:16 -0300
commitda6c7bd4b411105e7556ff5015e3c9f6ab1d26fe (patch)
tree8697d8d2a51c85bed762ba901c1a55c2f8f0b8c1
parente06c44800284696868a1e6a273abefec3047312f (diff)
downloadrails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.tar.gz
rails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.tar.bz2
rails-da6c7bd4b411105e7556ff5015e3c9f6ab1d26fe.zip
Do not in place modify what table_name returns
-rw-r--r--activemodel/lib/active_model/attribute_methods.rb2
-rw-r--r--activemodel/test/cases/attribute_methods_test.rb11
-rw-r--r--activerecord/lib/active_record/base.rb2
3 files changed, 2 insertions, 13 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb
index 73468afe55..f6648ea43e 100644
--- a/activemodel/lib/active_model/attribute_methods.rb
+++ b/activemodel/lib/active_model/attribute_methods.rb
@@ -107,7 +107,7 @@ module ActiveModel
sing.send :define_method, name, &block
else
value = value.to_s if value
- sing.send(:define_method, name) { value && value.dup }
+ sing.send(:define_method, name) { value }
end
end
diff --git a/activemodel/test/cases/attribute_methods_test.rb b/activemodel/test/cases/attribute_methods_test.rb
index e814666d99..022c6716bd 100644
--- a/activemodel/test/cases/attribute_methods_test.rb
+++ b/activemodel/test/cases/attribute_methods_test.rb
@@ -9,10 +9,6 @@ class ModelWithAttributes
define_method(:bar) do
'original bar'
end
-
- define_method(:zomg) do
- 'original zomg'
- end
end
def attributes
@@ -102,13 +98,6 @@ class AttributeMethodsTest < ActiveModel::TestCase
assert_equal "value of foo bar", ModelWithAttributesWithSpaces.new.send(:'foo bar')
end
- def test_defined_methods_always_return_duped_string
- ModelWithAttributes.define_attr_method(:zomg, 'lol')
- assert_equal 'lol', ModelWithAttributes.zomg
- ModelWithAttributes.zomg << 'bbq'
- assert_equal 'lol', ModelWithAttributes.zomg
- end
-
test '#define_attr_method generates attribute method' do
ModelWithAttributes.define_attr_method(:bar, 'bar')
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 7f506faeee..b778b0c0f0 100644
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -995,7 +995,7 @@ module ActiveRecord #:nodoc:
if parent < ActiveRecord::Base && !parent.abstract_class?
contained = parent.table_name
contained = contained.singularize if parent.pluralize_table_names
- contained << '_'
+ contained += '_'
end
"#{full_table_name_prefix}#{contained}#{undecorated_table_name(name)}#{table_name_suffix}"
else