From dc5a361449a46fb7229f339d538116c6092ea9d8 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Jakub=20Ku=C5=BAma?= Date: Wed, 13 May 2009 00:24:52 +0200 Subject: [PATCH] templates using UTF-8 encoding --- actionpack/lib/action_view/template/template.rb | 3 ++- actionpack/test/fixtures/test/utf8_eval.html.erb | 2 ++ actionpack/test/template/render_test.rb | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletions(-) create mode 100644 actionpack/test/fixtures/test/utf8_eval.html.erb diff --git a/actionpack/lib/action_view/template/template.rb b/actionpack/lib/action_view/template/template.rb index dcc5006..f467544 100644 --- a/actionpack/lib/action_view/template/template.rb +++ b/actionpack/lib/action_view/template/template.rb @@ -51,6 +51,7 @@ module ActionView locals_code = locals.keys.map! { |key| "#{key} = local_assigns[:#{key}];" }.join source = <<-end_src + # encoding: utf-8 def #{method_name}(local_assigns) old_output_buffer = output_buffer;#{locals_code};#{@handler.call(self)} ensure @@ -77,4 +78,4 @@ module ActionView "_render_template_#{@identifier.hash}_#{__id__}_#{locals.keys.hash}".gsub('-', "_") end end -end \ No newline at end of file +end diff --git a/actionpack/test/fixtures/test/utf8_eval.html.erb b/actionpack/test/fixtures/test/utf8_eval.html.erb new file mode 100644 index 0000000..0d669c1 --- /dev/null +++ b/actionpack/test/fixtures/test/utf8_eval.html.erb @@ -0,0 +1,2 @@ +<%= "ąćęłńóśźż" %> +<%= "ąćęłńóśźż".force_encoding(Encoding::UTF_8) %> diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index 71291f0..d8b6aa1 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -252,6 +252,12 @@ module RenderTestCases assert_equal "Русский текст\n日本語のテキスト", result assert_equal Encoding::UTF_8, result.encoding end + + def test_render_with_eval_utf8_template + result = @view.render(:file => "test/utf8_eval.html.erb", :layouts => "layouts/yield") + assert_equal "ąćęłńóśźż\nąćęłńóśźż\n", result + assert_equal Encoding::UTF_8, result.encoding + end end end -- 1.6.0.4