aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/quoting.rb2
-rw-r--r--activerecord/test/cases/quoting_test.rb13
2 files changed, 8 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
index 7489e88eef..325665dd87 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
@@ -35,7 +35,7 @@ module ActiveRecord
when Date, Time then "'#{quoted_date(value)}'"
when Symbol then "'#{quote_string(value.to_s)}'"
else
- "'#{quote_string(value.to_yaml)}'"
+ "'#{quote_string(YAML.dump(value))}'"
end
end
diff --git a/activerecord/test/cases/quoting_test.rb b/activerecord/test/cases/quoting_test.rb
index b87fb51d97..80ee74e41e 100644
--- a/activerecord/test/cases/quoting_test.rb
+++ b/activerecord/test/cases/quoting_test.rb
@@ -154,15 +154,16 @@ module ActiveRecord
end
def test_crazy_object
- crazy = Class.new { def to_yaml; 'lol' end }.new
- assert_equal "'lol'", @quoter.quote(crazy, nil)
- assert_equal "'lol'", @quoter.quote(crazy, Object.new)
+ crazy = Class.new.new
+ expected = "'#{YAML.dump(crazy)}'"
+ assert_equal expected, @quoter.quote(crazy, nil)
+ assert_equal expected, @quoter.quote(crazy, Object.new)
end
def test_crazy_object_calls_quote_string
- crazy = Class.new { def to_yaml; 'lo\l' end }.new
- assert_equal "'lo\\\\l'", @quoter.quote(crazy, nil)
- assert_equal "'lo\\\\l'", @quoter.quote(crazy, Object.new)
+ crazy = Class.new { def initialize; @lol = 'lo\l' end }.new
+ assert_match "lo\\\\l", @quoter.quote(crazy, nil)
+ assert_match "lo\\\\l", @quoter.quote(crazy, Object.new)
end
def test_quote_string_no_column