Issue #15987 has been updated by sawa (Tsuyoshi Sawada).


znz (Kazuhiro NISHIYAMA) wrote:
> I think `nil` means default behavior.

That does not hold even if you just look at the `Kernel` methods:

```ruby
exit(status=true)
Kernel::exit(status=true)
Process::exit(status=true)
exit!(status=false)
gets(sep=$/ [, getline_args])
rand(max=0)
readline(sep=$/)
readlines(sep=$/)
```

These methods have default values other than `nil`.

----------------------------------------
Bug #15987: Let `exception` option in `Kernel#Complex`, `Kernel#Float`, `Kernel#Integer`, `Kernel#Rational` be falsy vs. truthy
https://bugs.ruby-lang.org/issues/15987#change-79348

* Author: sawa (Tsuyoshi Sawada)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
The `exception` option in `Kernel#Complex`, `Kernel#Float`, `Kernel#Integer`, and `Kernel#Rational` distinguishes `false` vs. other values.

```ruby
Integer("z", exception: false) #=> nil
Integer("z", exception: nil) #>> ArgumentError: invalid value for Integer(): "z")
```

But in most other cases where a boolean notion is concerned (for example, the `chomp` option in `Kernel#gets`), the distinction is between falsy vs. truthy values.

I request the distinction to be falsy vs. truthy. In other words, I would like the value `nil` to work on the falsy side rather than the truthy side like this.

```ruby
Integer("z", exception: false) #=> nil
Integer("z", 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>