diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-29 09:26:42 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-29 09:26:42 +0000 |
commit | bbd1a18aafe5b8ba3c1a698526fcc62a7f0af1d1 (patch) | |
tree | 204deafe3c77a4c485f892c9fda28ed014a7ceb1 | |
parent | af91b4235416af1ec499afafcf4524d93437607b (diff) |
* bin/erb: accepts options in more flexible styles.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rwxr-xr-x | bin/erb | 24 |
2 files changed, 21 insertions, 7 deletions
@@ -1,3 +1,7 @@ +Mon Dec 29 17:53:24 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp> + + * bin/erb: accepts options in more flexible styles. + Mon Dec 29 17:25:17 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp> * lib/erb.rb (ERB): m17n of ERB. adds rdoc. @@ -12,9 +12,17 @@ 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 + if $1 == '-' + arg, @maybe_arg = arg.split(/=/, 2) + return arg + end + raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T' + if $2.size > 0 + self.unshift "-#{$2}" + @maybe_arg = $2 + else + @maybe_arg = nil + end "-#{$1}" else self.unshift arg @@ -23,7 +31,9 @@ class ERB end def ARGV.req_arg - self.shift || raise('missing argument') + (@maybe_arg || self.shift || raise('missing argument')).tap { + @maybe_arg = nil + } end def trim_mode_opt(trim_mode, disable_percent) @@ -94,11 +104,11 @@ class ERB -n print ruby script with line number -v enable verbose mode -d set $DEBUG to true - -r [library] load a library - -S [safe_level] set $SAFE (0..4) + -r library load a library + -S safe_level set $SAFE (0..4) -E ex[:in] set default external/internal encodings -U set default encoding to UTF-8. - -T [trim_mode] specify trim_mode (0..2, -) + -T trim_mode specify trim_mode (0..2, -) -P ignore lines which start with "%" EOU exit 1 |