1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

set ERB#filename so that it is used when reporting syntax/runtime errors.

Tabs converted to spaces.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
seki 2005-09-11 13:18:59 +00:00
parent a211caf936
commit 03ce8fe924
2 changed files with 82 additions and 75 deletions

View file

@ -1,3 +1,8 @@
Sun Sep 11 22:05:51 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
* bin/erb (ERB::Main#run): set ERB#filename so that it is used
when reporting syntax/runtime errors. Tabs converted to spaces.
Sat Sep 10 10:17:03 2005 GOTOU Yuuzou <gotoyuzo@notwork.org> Sat Sep 10 10:17:03 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
* ext/openssl/ossl_engine.c (ossl_engine_s_by_id): * ext/openssl/ossl_engine.c (ossl_engine_s_by_id):

152
bin/erb
View file

@ -12,13 +12,13 @@ class ERB
arg = self.shift arg = self.shift
return nil if arg == '--' return nil if arg == '--'
if arg =~ /^-(.)(.*)/ if arg =~ /^-(.)(.*)/
return arg if $1 == '-' return arg if $1 == '-'
raise 'unknown switch "-"' if $2.index('-') raise 'unknown switch "-"' if $2.index('-')
self.unshift "-#{$2}" if $2.size > 0 self.unshift "-#{$2}" if $2.size > 0
"-#{$1}" "-#{$1}"
else else
self.unshift arg self.unshift arg
nil nil
end end
end end
@ -30,13 +30,13 @@ class ERB
return trim_mode if disable_percent return trim_mode if disable_percent
case trim_mode case trim_mode
when 0 when 0
return '%' return '%'
when 1 when 1
return '%>' return '%>'
when 2 when 2
return '%<>' return '%<>'
when '-' when '-'
return '%-' return '%-'
end end
end end
module_function :trim_mode_opt module_function :trim_mode_opt
@ -45,60 +45,60 @@ class ERB
trim_mode = 0 trim_mode = 0
disable_percent = false disable_percent = false
begin begin
while switch = ARGV.switch while switch = ARGV.switch
case switch case switch
when '-x' # ruby source when '-x' # ruby source
output = true output = true
when '-n' # line number when '-n' # line number
number = true number = true
when '-v' # verbose when '-v' # verbose
$VERBOSE = true $VERBOSE = true
when '--version' # version when '--version' # version
STDERR.puts factory.version STDERR.puts factory.version
exit exit
when '-d', '--debug' # debug when '-d', '--debug' # debug
$DEBUG = true $DEBUG = true
when '-r' # require when '-r' # require
require ARGV.req_arg require ARGV.req_arg
when '-S' # sacurity level when '-S' # sacurity level
arg = ARGV.req_arg arg = ARGV.req_arg
raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/ raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/
safe_level = arg.to_i safe_level = arg.to_i
when '-T' # trim mode when '-T' # trim mode
arg = ARGV.req_arg arg = ARGV.req_arg
if arg == '-' if arg == '-'
trim_mode = arg trim_mode = arg
next next
end end
raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/ raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/
trim_mode = arg.to_i trim_mode = arg.to_i
when '-K' # KCODE when '-K' # KCODE
arg = ARGV.req_arg arg = ARGV.req_arg
case arg.downcase case arg.downcase
when 'e', '-e', 'euc' when 'e', '-e', 'euc'
$KCODE = 'EUC' $KCODE = 'EUC'
when 's', '-s', 'sjis' when 's', '-s', 'sjis'
$KCODE = 'SJIS' $KCODE = 'SJIS'
when 'u', '-u', 'utf8' when 'u', '-u', 'utf8'
$KCODE = 'UTF8' $KCODE = 'UTF8'
when 'n', '-n', 'none' when 'n', '-n', 'none'
$KCODE = 'NONE' $KCODE = 'NONE'
else else
raise "invalid KCODE #{arg.dump}" raise "invalid KCODE #{arg.dump}"
end end
when '-P' when '-P'
disable_percent = true disable_percent = true
when '--help' when '--help'
raise "print this help" raise "print this help"
else else
raise "unknown switch #{switch.dump}" raise "unknown switch #{switch.dump}"
end end
end end
rescue # usage rescue # usage
STDERR.puts $!.to_s STDERR.puts $!.to_s
STDERR.puts File.basename($0) + STDERR.puts File.basename($0) +
" [switches] [inputfile]" " [switches] [inputfile]"
STDERR.puts <<EOU STDERR.puts <<EOU
-x print ruby script -x print ruby script
-n print ruby script with line number -n print ruby script with line number
-v enable verbose mode -v enable verbose mode
@ -109,25 +109,27 @@ class ERB
-T [trim_mode] specify trim_mode (0..2, -) -T [trim_mode] specify trim_mode (0..2, -)
-P disregard the lin which starts in "%" -P disregard the lin which starts in "%"
EOU EOU
exit 1 exit 1
end end
src = $<.read src = $<.read
filename = $FILENAME
exit 2 unless src exit 2 unless src
trim = trim_mode_opt(trim_mode, disable_percent) trim = trim_mode_opt(trim_mode, disable_percent)
erb = factory.new(src.untaint, safe_level, trim) erb = factory.new(src.untaint, safe_level, trim)
erb.filename = filename
if output if output
if number if number
l = 1 l = 1
for line in erb.src for line in erb.src
puts "%3d %s"%[l, line] puts "%3d %s"%[l, line]
l += 1 l += 1
end end
else else
puts erb.src puts erb.src
end end
else else
erb.run(TOPLEVEL_BINDING.taint) erb.run(TOPLEVEL_BINDING.taint)
end end
end end
module_function :run module_function :run