ruby-changes:63378
From: Takashi <ko1@a...>
Date: Tue, 20 Oct 2020 12:59:06 +0900 (JST)
Subject: [ruby-changes:63378] 4a7dccf44f (master): Add a Ripper.lex test of :on_embexpr_end
https://git.ruby-lang.org/ruby.git/commit/?id=4a7dccf44f From 4a7dccf44f02fa471e848ec729393c257b97da4d Mon Sep 17 00:00:00 2001 From: Takashi Kokubun <takashikkbn@g...> Date: Mon, 19 Oct 2020 20:56:08 -0700 Subject: Add a Ripper.lex test of :on_embexpr_end This is a weird use case of Ripper.lex which I'm not sure is supposed to be maintained, so I'm adding this test so that we can easily notice such changes. If we change the behavior, this will break the behavior of hamlit.gem v1 and code like https://github.com/haml/haml/pull/1043. diff --git a/test/ripper/test_lexer.rb b/test/ripper/test_lexer.rb index 1794773..3fc4423 100644 --- a/test/ripper/test_lexer.rb +++ b/test/ripper/test_lexer.rb @@ -138,4 +138,11 @@ class TestRipper::Lexer < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ripper/test_lexer.rb#L138 assert_equal pos, code.bytesize assert_equal expected.size, result.size end + + def test_trailing_on_embexpr_end + # This is useful for scanning a template engine literal `{ foo, bar: baz }` + # whose body inside brackes works like trailing method arguments, like Haml. + token = Ripper.lex("a( foo, bar: baz }").last + assert_equal [[1, 17], :on_embexpr_end, "}", state(:EXPR_ARG)], token + end end -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/