From: akr@... Date: 2014-10-22T03:29:18+00:00 Subject: [ruby-dev:48684] [ruby-trunk - Bug #10411] [Open] Ripper.sexp("foo\n .bar") extract a wrong method name " .bar" Issue #10411 has been reported by Akira Tanaka. ---------------------------------------- Bug #10411: Ripper.sexp("foo\n .bar") extract a wrong method name " .bar" https://bugs.ruby-lang.org/issues/10411 * Author: Akira Tanaka * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.2.0dev (2014-10-22 trunk 48083) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- 以下のように、ripper が、メソッド名として " .bar" などといった 空白やピリオドの入った文字列を取り出してくることがあります。 ``` % ./ruby -v -rripper -e 'p Ripper.sexp("foo\n .bar")' ruby 2.2.0dev (2014-10-22 trunk 48083) [x86_64-linux] [:program, [[:call, [:vcall, [:@ident, "foo", [1, 0]]], :".", [:@ident, " .bar", [2, 0]]]]] ``` 改行を入れなければ、"bar" という期待するメソッド名が取り出されます。 ``` % ./ruby -rripper -e 'p Ripper.sexp("foo .bar")' [:program, [[:call, [:vcall, [:@ident, "foo", [1, 0]]], :".", [:@ident, "bar", [1, 13]]]]] ``` -- https://bugs.ruby-lang.org/