Issue #12459 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Feedback

First, `ARGV.getopts` is a easy wrapper for old getopts.rb, not recommended.
And I don't like the idea to use **names** there.

```ruby
ARGV.getopts("", ["strval:string option", String], ["intval:integer"=>Integer])
```

or

```ruby
ARGV.getopts("", "strval:string option"=>String, "intval:integer"=>Integer)
```

may be acceptable?


----------------------------------------
Feature #12459: Add type coercion option to ARGV.getopts arguements.
https://bugs.ruby-lang.org/issues/12459#change-59019

* Author: Seiji Takahashi
* Status: Feedback
* Priority: Normal
* Assignee: 
----------------------------------------
I suggest a little new feature to lib/optparse.rb.

When I created CLI tool I defined option parser with `ARGV.getopts` function like following.

~~~ruby
ARGV.getopts('abc:', 'logopt, 'optwithval:val')
~~~

It was so easy and short to recognize what is declared as options, but I could't force a type of the values.
Maybe it looks unshapely, but I'd like to confirm the types like this:

~~~ruby
ARGV.getopts('strval:(String)intval:(Integer)', 'logopt', 'optwithval:val(String)')
~~~

Normal OptParser has type coercion but extended function `ARGV.getopts` has no feature like this.
This difference is trivial but inconvenient.



-- 
https://bugs.ruby-lang.org/