aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/collectors/plain_string.rb2
-rw-r--r--test/collectors/test_sql_string.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/arel/collectors/plain_string.rb b/lib/arel/collectors/plain_string.rb
index 4c8c15cc9c..1e8d2a2152 100644
--- a/lib/arel/collectors/plain_string.rb
+++ b/lib/arel/collectors/plain_string.rb
@@ -3,7 +3,7 @@ module Arel
module Collectors
class PlainString
def initialize
- @str = String.new
+ @str = ''.dup
end
def value
diff --git a/test/collectors/test_sql_string.rb b/test/collectors/test_sql_string.rb
index 8651296ff8..debec8e9c9 100644
--- a/test/collectors/test_sql_string.rb
+++ b/test/collectors/test_sql_string.rb
@@ -33,6 +33,14 @@ module Arel
sql = collector.compile ["hello", "world"]
assert_equal 'SELECT FROM "users" WHERE "users"."age" = ? AND "users"."name" = ?', sql
end
+
+ def test_returned_sql_uses_utf8_encoding
+ bv = Nodes::BindParam.new(nil)
+ collector = collect ast_with_binds bv
+
+ sql = collector.compile ["hello", "world"]
+ assert_equal sql.encoding, Encoding::UTF_8
+ end
end
end
end