[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]