summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-30 10:32:16 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-30 10:32:16 +0000
commit1bb25b049884b1eccd31a347898533c7cf68f9d5 (patch)
tree05168404e8a601bafa537332ec49ed88170de891
parent7c74420ddce43e40741ad9408d11596417cafb82 (diff)
merges r21171 from trunk into ruby_1_9_1.
* bin/erb: accepts options in more flexible styles. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rwxr-xr-xbin/erb24
2 files changed, 21 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ddb60d91df..dedcb87a15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/bin/erb b/bin/erb
index d26564104f..6db3d0b6ed 100755
--- a/bin/erb
+++ b/bin/erb
@@ -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