diff options
author | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-11 13:18:59 +0000 |
---|---|---|
committer | seki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-11 13:18:59 +0000 |
commit | b24465ba536f30550afff0e80cf23182b6b28d51 (patch) | |
tree | 2b6f6d95ea1dad659d0185ba609cdd3ba6caef9e /bin | |
parent | d82121c3d1f2c102b63028b86a455ffe4c198d66 (diff) | |
download | ruby-b24465ba536f30550afff0e80cf23182b6b28d51.tar.gz ruby-b24465ba536f30550afff0e80cf23182b6b28d51.tar.xz ruby-b24465ba536f30550afff0e80cf23182b6b28d51.zip |
set ERB#filename so that it is used when reporting syntax/runtime errors.
Tabs converted to spaces.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/erb | 152 |
1 files changed, 77 insertions, 75 deletions
@@ -12,13 +12,13 @@ class ERB arg = self.shift return nil if arg == '--' if arg =~ /^-(.)(.*)/ - return arg if $1 == '-' - raise 'unknown switch "-"' if $2.index('-') - self.unshift "-#{$2}" if $2.size > 0 - "-#{$1}" + return arg if $1 == '-' + raise 'unknown switch "-"' if $2.index('-') + self.unshift "-#{$2}" if $2.size > 0 + "-#{$1}" else - self.unshift arg - nil + self.unshift arg + nil end end @@ -30,13 +30,13 @@ class ERB return trim_mode if disable_percent case trim_mode when 0 - return '%' + return '%' when 1 - return '%>' + return '%>' when 2 - return '%<>' + return '%<>' when '-' - return '%-' + return '%-' end end module_function :trim_mode_opt @@ -45,60 +45,60 @@ class ERB trim_mode = 0 disable_percent = false begin - while switch = ARGV.switch - case switch - when '-x' # ruby source - output = true - when '-n' # line number - number = true - when '-v' # verbose - $VERBOSE = true - when '--version' # version - STDERR.puts factory.version - exit - when '-d', '--debug' # debug - $DEBUG = true - when '-r' # require - require ARGV.req_arg - when '-S' # sacurity level - arg = ARGV.req_arg - raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/ - safe_level = arg.to_i - when '-T' # trim mode - arg = ARGV.req_arg - if arg == '-' - trim_mode = arg - next - end - raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/ - trim_mode = arg.to_i - when '-K' # KCODE - arg = ARGV.req_arg - case arg.downcase - when 'e', '-e', 'euc' - $KCODE = 'EUC' - when 's', '-s', 'sjis' - $KCODE = 'SJIS' - when 'u', '-u', 'utf8' - $KCODE = 'UTF8' - when 'n', '-n', 'none' - $KCODE = 'NONE' - else - raise "invalid KCODE #{arg.dump}" - end - when '-P' - disable_percent = true - when '--help' - raise "print this help" - else - raise "unknown switch #{switch.dump}" - end - end - rescue # usage - STDERR.puts $!.to_s - STDERR.puts File.basename($0) + - " [switches] [inputfile]" - STDERR.puts <<EOU + while switch = ARGV.switch + case switch + when '-x' # ruby source + output = true + when '-n' # line number + number = true + when '-v' # verbose + $VERBOSE = true + when '--version' # version + STDERR.puts factory.version + exit + when '-d', '--debug' # debug + $DEBUG = true + when '-r' # require + require ARGV.req_arg + when '-S' # sacurity level + arg = ARGV.req_arg + raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/ + safe_level = arg.to_i + when '-T' # trim mode + arg = ARGV.req_arg + if arg == '-' + trim_mode = arg + next + end + raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/ + trim_mode = arg.to_i + when '-K' # KCODE + arg = ARGV.req_arg + case arg.downcase + when 'e', '-e', 'euc' + $KCODE = 'EUC' + when 's', '-s', 'sjis' + $KCODE = 'SJIS' + when 'u', '-u', 'utf8' + $KCODE = 'UTF8' + when 'n', '-n', 'none' + $KCODE = 'NONE' + else + raise "invalid KCODE #{arg.dump}" + end + when '-P' + disable_percent = true + when '--help' + raise "print this help" + else + raise "unknown switch #{switch.dump}" + end + end + rescue # usage + STDERR.puts $!.to_s + STDERR.puts File.basename($0) + + " [switches] [inputfile]" + STDERR.puts <<EOU -x print ruby script -n print ruby script with line number -v enable verbose mode @@ -109,25 +109,27 @@ class ERB -T [trim_mode] specify trim_mode (0..2, -) -P disregard the lin which starts in "%" EOU - exit 1 + exit 1 end src = $<.read + filename = $FILENAME exit 2 unless src trim = trim_mode_opt(trim_mode, disable_percent) erb = factory.new(src.untaint, safe_level, trim) + erb.filename = filename if output - if number - l = 1 - for line in erb.src - puts "%3d %s"%[l, line] - l += 1 - end - else - puts erb.src - end + if number + l = 1 + for line in erb.src + puts "%3d %s"%[l, line] + l += 1 + end + else + puts erb.src + end else - erb.run(TOPLEVEL_BINDING.taint) + erb.run(TOPLEVEL_BINDING.taint) end end module_function :run |