Actions
Bug #20399
openRipper doesn't respect implicit -x
Description
For the given script:
#!/bin/sh
# -*- ruby -*-
exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false
#!ruby
# This needs ruby 2.0, Subversion and Git.
# As a Ruby committer, run this in an SVN repository
# to commit a change.
require 'tempfile'
require 'net/http'
I would expect all of the various Ripper APIs (lex
, sexp
, sexp_raw
, new.parse
, etc.) to start parsing on line 4, because that's what the parser does. Instead, it starts parsing on line 1.
Updated by nobu (Nobuyoshi Nakada) 8 months ago ยท Edited
Shebang makes sense only in an executable script file.
$ echo $'#!/bin/sh\np :sh' | ruby
ruby: no Ruby script found in input (LoadError)
bash: exit 1
$ ruby -e $'#!/bin/sh\np :sh'
:sh
Updated by kddnewton (Kevin Newton) 8 months ago
I agree, but I still think Ripper should match the parser's behavior here. Otherwise you can't get the AST of those kinds of files.
Actions
Like0
Like0Like0