Issue #14224 has been reported by sobrinho (Gabriel Sobrinho).

----------------------------------------
Feature #14224: Boolean class
https://bugs.ruby-lang.org/issues/14224

* Author: sobrinho (Gabriel Sobrinho)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Suggestion: TrueClass and FalseClass inheriting from Boolean (new superclass).

This would make true/false checking easier, like:

```
unless value.is_a?(Boolean)
  raise "Non-boolean value"
end
```

Currently we have to check for both classes:

```
unless value.is_a?(FalseClass) or value.is_a?(TrueClass)
  raise "Non-boolean value"
end
```

In high-level APIs this would be beneficial, for example in RSpec:

```
expect(value).to be_a Boolean
```

Currently, we have to check like this:

```
expect([TrueClass, FalseClass]).to include value.class
```

Or another similar workaround.

I would like to provide a patch if this is acceptable.



-- 
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>