From d9ff835b99ff3c7567ccde9b1379b4deeabee32f Mon Sep 17 00:00:00 2001 From: Toshimaru Date: Fri, 9 Dec 2016 04:55:21 +0900 Subject: split DELEGATION_RESERVED_METHOD_NAMES in half --- actionview/lib/action_view/template.rb | 2 +- .../fixtures/test/test_template_with_block_variable.erb | 1 - .../test_template_with_delegation_reserved_keywords.erb | 1 + actionview/test/template/compiled_templates_test.rb | 14 ++++++++++---- 4 files changed, 12 insertions(+), 6 deletions(-) delete mode 100644 actionview/test/fixtures/test/test_template_with_block_variable.erb create mode 100644 actionview/test/fixtures/test/test_template_with_delegation_reserved_keywords.erb (limited to 'actionview') diff --git a/actionview/lib/action_view/template.rb b/actionview/lib/action_view/template.rb index d67f37d6d1..0afdcd1def 100644 --- a/actionview/lib/action_view/template.rb +++ b/actionview/lib/action_view/template.rb @@ -326,7 +326,7 @@ module ActionView def locals_code #:nodoc: # Only locals with valid variable names get set directly. Others will # still be available in local_assigns. - locals = @locals.to_set - Module::DELEGATION_RESERVED_METHOD_NAMES.dup.delete("block") + locals = @locals - Module::RUBY_RESERVED_KEYWORDS locals = locals.grep(/\A(?![A-Z0-9])(?:[[:alnum:]_]|[^\0-\177])+\z/) # Double assign to suppress the dreaded 'assigned but unused variable' warning diff --git a/actionview/test/fixtures/test/test_template_with_block_variable.erb b/actionview/test/fixtures/test/test_template_with_block_variable.erb deleted file mode 100644 index 2ee6a2bbdc..0000000000 --- a/actionview/test/fixtures/test/test_template_with_block_variable.erb +++ /dev/null @@ -1 +0,0 @@ -<%= block %> \ No newline at end of file diff --git a/actionview/test/fixtures/test/test_template_with_delegation_reserved_keywords.erb b/actionview/test/fixtures/test/test_template_with_delegation_reserved_keywords.erb new file mode 100644 index 0000000000..edfe52e422 --- /dev/null +++ b/actionview/test/fixtures/test/test_template_with_delegation_reserved_keywords.erb @@ -0,0 +1 @@ +<%= _ %> <%= arg %> <%= args %> <%= block %> \ No newline at end of file diff --git a/actionview/test/template/compiled_templates_test.rb b/actionview/test/template/compiled_templates_test.rb index a24a245442..40ac867b38 100644 --- a/actionview/test/template/compiled_templates_test.rb +++ b/actionview/test/template/compiled_templates_test.rb @@ -14,10 +14,6 @@ class CompiledTemplatesTest < ActiveSupport::TestCase render(file: "test/render_file_with_ruby_keyword_locals", locals: { class: "foo" }) end - def test_template_with_block_variable - assert_equal "foo", render(file: "test/test_template_with_block_variable", locals: { block: "foo" }) - end - def test_template_with_invalid_identifier_locals locals = { foo: "bar", @@ -28,6 +24,16 @@ class CompiledTemplatesTest < ActiveSupport::TestCase assert_equal locals.inspect, render(file: "test/render_file_inspect_local_assigns", locals: locals) end + def test_template_with_delegation_reserved_keywords + locals = { + _: "one", + arg: "two", + args: "three", + block: "four", + } + assert_equal "one two three four", render(file: "test/test_template_with_delegation_reserved_keywords", locals: locals) + end + def test_template_with_unicode_identifier assert_equal "🎂", render(file: "test/render_file_unicode_local", locals: { 🎃: "🎂" }) end -- cgit v1.2.3