From 39e1c078b98e1e40956ae4e3d807834dfe3895ed Mon Sep 17 00:00:00 2001 From: Manfred Stienstra Date: Fri, 29 May 2009 09:46:51 +0200 Subject: [PATCH] Ruby 1.9: Add ERB magic encoding comment to generated views --- .../components/controller/templates/view.html.erb | 3 ++ .../components/scaffold/templates/layout.html.erb | 3 ++ .../scaffold/templates/view_edit.html.erb | 3 ++ .../scaffold/templates/view_index.html.erb | 3 ++ .../scaffold/templates/view_new.html.erb | 3 ++ .../scaffold/templates/view_show.html.erb | 3 ++ .../generators/rails_controller_generator_test.rb | 24 ++++++++++++++++++++ .../generators/rails_scaffold_generator_test.rb | 19 +++++++++++++++ 8 files changed, 61 insertions(+), 0 deletions(-) diff --git a/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb b/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb index ad85431..256897d 100644 --- a/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +++ b/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb @@ -1,2 +1,5 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%>

<%= class_name %>#<%= action %>

Find me in <%= path %>

diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb index ebc97f8..de3303f 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb @@ -1,3 +1,6 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%> diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb index cca1d61..bef571d 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb @@ -1,3 +1,6 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%>

Editing <%= singular_name %>

<%% form_for(@<%= singular_name %>) do |f| %> diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb index 2e603d5..2807feb 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb @@ -1,3 +1,6 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%>

Listing <%= plural_name %>

diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb index 96c89fc..e9eb785 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb @@ -1,3 +1,6 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%>

New <%= singular_name %>

<%% form_for(@<%= singular_name %>) do |f| %> diff --git a/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb b/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb index adecaf7..ee79277 100644 --- a/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +++ b/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb @@ -1,3 +1,6 @@ +<% if RUBY_VERSION >= '1.9' -%> +<%= Base64.decode64("PCUjIGVuY29kaW5nOiB1dGYtOCAlPg==") %> +<% end -%> <% for attribute in attributes -%>

<%= attribute.column.human_name %>: diff --git a/railties/test/generators/rails_controller_generator_test.rb b/railties/test/generators/rails_controller_generator_test.rb index 43fbe97..c409b0b 100644 --- a/railties/test/generators/rails_controller_generator_test.rb +++ b/railties/test/generators/rails_controller_generator_test.rb @@ -1,4 +1,5 @@ require 'generators/generator_test_helper' +require 'base64' module Admin end @@ -41,4 +42,27 @@ class RailsControllerGeneratorTest < GeneratorTestCase end end end + + def test_controller_generates_views_for_specified_actions + run_generator('controller', %w(products index show)) + assert_generated_views_for :products, 'index.html.erb', 'show.html.erb' + end + + if RUBY_VERSION >= '1.9' + def test_controller_prepends_encoding_to_generated_views + run_generator('controller', %w(products index show)) + + assert_generated_views_for(:products, 'index.html.erb') do |body| + assert_match /^<%# encoding: utf-8 %>/, body + end + end + else + def test_controller_doesnt_prepend_encoding_to_generated_views + run_generator('controller', %w(products index show)) + + assert_generated_views_for(:products, 'index.html.erb') do |body| + assert_no_match /^<%# encoding: utf-8 %>/, body + end + end + end end diff --git a/railties/test/generators/rails_scaffold_generator_test.rb b/railties/test/generators/rails_scaffold_generator_test.rb index 70829a7..a2b9406 100644 --- a/railties/test/generators/rails_scaffold_generator_test.rb +++ b/railties/test/generators/rails_scaffold_generator_test.rb @@ -1,5 +1,6 @@ require 'generators/generator_test_helper' require 'abstract_unit' +require 'base64' class RailsScaffoldGeneratorTest < GeneratorTestCase def test_scaffolded_names @@ -147,4 +148,22 @@ class RailsScaffoldGeneratorTest < GeneratorTestCase assert_skipped_migration :create_products assert_added_route_for :products end + + if RUBY_VERSION >= '1.9' + def test_scaffold_prepends_encoding_to_generated_views + run_generator('scaffold', %w(Product)) + + assert_generated_views_for(:products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb") do |body| + assert_match /^<%# encoding: utf-8 %>/, body + end + end + else + def test_scaffold_does_not_prepend_encoding_to_generated_views + run_generator('scaffold', %w(Product)) + + assert_generated_views_for(:products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb") do |body| + assert_no_match /^<%# encoding: utf-8 %>/, body + end + end + end end -- 1.6.0