Issue #13260 has been updated by Yukihiro Matsumoto.

Status changed from Open to Feedback

The proposal is still vague, especially when `strict: false`. The criteria are totally culture dependent.
"yes" may be true for English speaking people, but what about "Ϥ" (Japanese) or "Ja" (German)? The list would go on.

Until the ambiguity resolved, I am against the proposal.

Matz.


----------------------------------------
Feature #13260: Kernel#Boolean
https://bugs.ruby-lang.org/issues/13260#change-63242

* Author: Tsuyoshi Sawada
* Status: Feedback
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
I think we have lots of occasions to receive a `true` or `false` value as a string input, and want to convert it to `true` or `false`. Perhaps we can have a method `Kernel#Boolean` in a similar spirit to `Kernel#Integer` and its kins, which takes an optional keyword argument `exception` (similar to https://bugs.ruby-lang.org/issues/12732) and `strict` (defaulted to true).

```ruby
Boolean("true") # => true
Boolean("false") # => false
Boolean("foo") # => ArgumentError
Boolean("foo", exception: nil) # => nil
Boolean("1") # => ArgumentError
Boolean("1", strict: false) # => true
Boolean("yes", strict: false) # => true
Boolean("0", strict: false) # => false
Boolean("no", strict: false) # => false
Boolean("foo", strict: false, exception: nil) # => nil
```



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>