diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-03-29 09:10:12 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-03-29 09:10:12 +0000 |
commit | b1b3e13570c5d3cc6f04c27fab700198678e6d1f (patch) | |
tree | d8dc21f451be806cd214ef94a447080e305d1bfe | |
parent | d0cb5c71ce3f179f14fddf5241cf0dcfe1599123 (diff) | |
download | ruby-b1b3e13570c5d3cc6f04c27fab700198678e6d1f.tar.gz |
* lib/optparse.rb (Numeric): accept rationals.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/optparse.rb | 13 |
2 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,7 @@ +Mon Mar 29 18:10:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/optparse.rb (Numeric): accept rationals. + Mon Mar 29 15:10:39 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * lib/tempfile.rb (Tempfile#open): re-open with same mode and diff --git a/lib/optparse.rb b/lib/optparse.rb index 24ec91d78e..b07d91ef6c 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -1531,9 +1531,16 @@ class OptionParser # # Generic numeric format, converts to Integer for integer format, Float - # for float format. - # - accept(Numeric, %r"\A[-+]?(?:#{octal}|#{float})"io) {|s,| eval(s) if s} + # for float format, and Rational for rational format. + # + real = "[-+]?(?:#{octal}|#{float})" + accept(Numeric, /\A(#{real})(?:\/(#{real}))?/io) {|s, d, n| + if n + Rational(d, n) + elsif s + eval(s) + end + } # # Decimal integer format, to be converted to Integer. |