diff options
Diffstat (limited to 'lib/optparse.rb')
-rw-r--r-- | lib/optparse.rb | 13 |
1 files changed, 10 insertions, 3 deletions
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. |