ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
@ 2025-08-29 17:28 Phalado (Raphael Cordeiro) via ruby-core
  2025-08-29 22:50 ` [ruby-core:123129] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Phalado (Raphael Cordeiro) via ruby-core @ 2025-08-29 17:28 UTC (permalink / raw)
  To: ruby-core; +Cc: Phalado (Raphael Cordeiro)

Issue #21556 has been reported by Phalado (Raphael Cordeiro).

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556

* Author: Phalado (Raphael Cordeiro)
* Status: Open
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123129] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
@ 2025-08-29 22:50 ` nobu (Nobuyoshi Nakada) via ruby-core
  2025-08-30 22:58 ` [ruby-core:123139] " Phalado (Raphael Cordeiro) via ruby-core
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-08-29 22:50 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #21556 has been updated by nobu (Nobuyoshi Nakada).

Status changed from Open to Feedback

Phalado (Raphael Cordeiro) wrote:
> Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

For what situation, and why mixing strings and `true`/`false`?
It sounds like depending on applications/libraries.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114456

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123139] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
  2025-08-29 22:50 ` [ruby-core:123129] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2025-08-30 22:58 ` Phalado (Raphael Cordeiro) via ruby-core
  2025-08-31  0:00 ` [ruby-core:123140] " austin (Austin Ziegler) via ruby-core
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Phalado (Raphael Cordeiro) via ruby-core @ 2025-08-30 22:58 UTC (permalink / raw)
  To: ruby-core; +Cc: Phalado (Raphael Cordeiro)

Issue #21556 has been updated by Phalado (Raphael Cordeiro).


nobu (Nobuyoshi Nakada) wrote in #note-1:
> Phalado (Raphael Cordeiro) wrote:
> > Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.
> 
> For what situation, and why mixing strings and `true`/`false`?
> It sounds like depending on applications/libraries.

Data received on requests and JSON conversion. It's not unusual that a Boolean is converted to a String, or users end up filling in as a String instead of a Boolean.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114473

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123140] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
  2025-08-29 22:50 ` [ruby-core:123129] " nobu (Nobuyoshi Nakada) via ruby-core
  2025-08-30 22:58 ` [ruby-core:123139] " Phalado (Raphael Cordeiro) via ruby-core
@ 2025-08-31  0:00 ` austin (Austin Ziegler) via ruby-core
  2025-09-01  0:54 ` [ruby-core:123149] " shan (Shannon Skipper) via ruby-core
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: austin (Austin Ziegler) via ruby-core @ 2025-08-31  0:00 UTC (permalink / raw)
  To: ruby-core; +Cc: austin (Austin Ziegler)

Issue #21556 has been updated by austin (Austin Ziegler).


Phalado (Raphael Cordeiro) wrote in #note-2:
> nobu (Nobuyoshi Nakada) wrote in #note-1:
> > Phalado (Raphael Cordeiro) wrote:
> > > Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.
> > For what situation, and why mixing strings and `true`/`false`?
> > It sounds like depending on applications/libraries.
> Data received on requests and JSON conversion. It's not unusual that a Boolean is converted to a String, or users end up filling in as a String instead of a Boolean.

If you're checking a string for the value `"true"`, you're not checking for an exact `true` or `false` value. This is a data conversion applicable to an application, library, or framework (that is, it might be a viable feature for ActiveSupport) but I don't believe it belongs as part of the language core.

I'm mostly doing Elixir these days where in a library I made I have explicitly handled this with an `as_boolean(value, options)` conversion where the options include choices like:

- which values are truthy (by default `true` or `1`)
- which values are fasly (the inverse of `truthy` and cannot be specified with `truthy`)
- a default value (`false` by default)
- and whether values should be downcased (`TRUE` would be truthy)

Simply saying `value.true?` isn't something that the language should be specifying. What would the value of `0.true?` be (it depends; in shell scripts, `0` is success; in C, `0` is false; in Ruby `0` is truthy because it's not `false` or` nil`).

I'm very negative on this for core.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114474

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123149] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
                   ` (2 preceding siblings ...)
  2025-08-31  0:00 ` [ruby-core:123140] " austin (Austin Ziegler) via ruby-core
@ 2025-09-01  0:54 ` shan (Shannon Skipper) via ruby-core
  2025-09-01 13:44 ` [ruby-core:123157] " Phalado (Raphael Cordeiro) via ruby-core
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: shan (Shannon Skipper) via ruby-core @ 2025-09-01  0:54 UTC (permalink / raw)
  To: ruby-core; +Cc: shan (Shannon Skipper)

Issue #21556 has been updated by shan (Shannon Skipper).


I wonder if the inclusion of the String variant could be reconsidered? Is there a domain where `"true"` and `"false" Strings are used? The Rails variant trying to support env vars makes more sense to me than `string == 'true'` test since you can `string == 'true'` trivially. Having `"True".true? #=> false` seems a bit counterintuitive.

For some reason the true/false/nil ones seem totally make sense to me even though I'm not sure I'd use them. I'm really curious what the use case is for the String variant?

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114481

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123157] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
                   ` (3 preceding siblings ...)
  2025-09-01  0:54 ` [ruby-core:123149] " shan (Shannon Skipper) via ruby-core
@ 2025-09-01 13:44 ` Phalado (Raphael Cordeiro) via ruby-core
  2025-09-01 13:50 ` [ruby-core:123158] " Phalado (Raphael Cordeiro) via ruby-core
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Phalado (Raphael Cordeiro) via ruby-core @ 2025-09-01 13:44 UTC (permalink / raw)
  To: ruby-core; +Cc: Phalado (Raphael Cordeiro)

Issue #21556 has been updated by Phalado (Raphael Cordeiro).


austin (Austin Ziegler) wrote in #note-3:
> Phalado (Raphael Cordeiro) wrote in #note-2:
> > nobu (Nobuyoshi Nakada) wrote in #note-1:
> > > Phalado (Raphael Cordeiro) wrote:
> > > > Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.
> > > For what situation, and why mixing strings and `true`/`false`?
> > > It sounds like depending on applications/libraries.
> > Data received on requests and JSON conversion. It's not unusual that a Boolean is converted to a String, or users end up filling in as a String instead of a Boolean.
> 
> If you're checking a string for the value `"true"`, you're not checking for an exact `true` or `false` value. This is a data conversion applicable to an application, library, or framework (that is, it might be a viable feature for ActiveSupport) but I don't believe it belongs as part of the language core.
> 
> I'm mostly doing Elixir these days where in a library I made I have explicitly handled this with an `as_boolean(value, options)` conversion where the options include choices like:
> 
> - which values are truthy (by default `true` or `1`)
> - which values are fasly (the inverse of `truthy` and cannot be specified with `truthy`)
> - a default value (`false` by default)
> - and whether values should be downcased (`TRUE` would be truthy)
> 
> Simply saying `value.true?` isn't something that the language should be specifying. What would the value of `0.true?` be (it depends; in shell scripts, `0` is success; in C, `0` is false; in Ruby `0` is truthy because it's not `false` or` nil`).
> 
> I'm very negative on this for core.

Well, the idea is to recognize true/false values, ignoring truthy/falsy values because of JSON.

But I respect your opinion and truly appreciate it.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114491

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123158] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
                   ` (4 preceding siblings ...)
  2025-09-01 13:44 ` [ruby-core:123157] " Phalado (Raphael Cordeiro) via ruby-core
@ 2025-09-01 13:50 ` Phalado (Raphael Cordeiro) via ruby-core
  2025-09-14  1:30 ` [ruby-core:123245] " nobu (Nobuyoshi Nakada) via ruby-core
  2025-09-14  1:35 ` [ruby-core:123246] " nobu (Nobuyoshi Nakada) via ruby-core
  7 siblings, 0 replies; 9+ messages in thread
From: Phalado (Raphael Cordeiro) via ruby-core @ 2025-09-01 13:50 UTC (permalink / raw)
  To: ruby-core; +Cc: Phalado (Raphael Cordeiro)

Issue #21556 has been updated by Phalado (Raphael Cordeiro).


shan (Shannon Skipper) wrote in #note-4:
> I wonder if the inclusion of the String variant could be considered again even though it has been merged? Is there a domain where `"true"` and `"false"` Strings are used? The Rails variant trying to support env vars makes more sense to me than `string == 'true'` test since you can `string == 'true'` trivially. Having `"True".true? #=> false` seems a bit counterintuitive.
> 
> I think the true/false/nil ones seem totally make sense.
> 
> Edit: Rereading the issue, I think I somehow missed that the point of the feature was bool and String both being supported. Sorry for the noise. I'm still curious if a mix of String of exactly true/false Strings and bool is something typical?

The idea here came when working with JSON from requests and, especially, Active Admin. Users sometimes fill boolean values as true, other times as "true", which can be a problem if you are expecting a boolean or a string specifically. Also, a nil value can be considered 'false', which is not always the case when treating data.

So, instead of checking for nil, converting it to string and, in the end, checking if it'1s equal to 'true' or 'false' (kinda converting to boolean) I came with this, where Strings, Booleans and Nil values can live together in harmony.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114492

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123245] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
                   ` (5 preceding siblings ...)
  2025-09-01 13:50 ` [ruby-core:123158] " Phalado (Raphael Cordeiro) via ruby-core
@ 2025-09-14  1:30 ` nobu (Nobuyoshi Nakada) via ruby-core
  2025-09-14  1:35 ` [ruby-core:123246] " nobu (Nobuyoshi Nakada) via ruby-core
  7 siblings, 0 replies; 9+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-09-14  1:30 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #21556 has been updated by nobu (Nobuyoshi Nakada).


Phalado (Raphael Cordeiro) wrote in #note-5:
> I also think this is something very 'Ruby' to do, like the method `.zero?` just to check if a value is equal to zero.

Only `Numeric` classes have the method `zero?`, but not `NilClass`, `TrueClass`, `FalseClass`, and `String`.



----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114578

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [ruby-core:123246] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
  2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
                   ` (6 preceding siblings ...)
  2025-09-14  1:30 ` [ruby-core:123245] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2025-09-14  1:35 ` nobu (Nobuyoshi Nakada) via ruby-core
  7 siblings, 0 replies; 9+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-09-14  1:35 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #21556 has been updated by nobu (Nobuyoshi Nakada).


Phalado (Raphael Cordeiro) wrote in #note-6:
> The idea here came when working with JSON from requests and, especially, Active Admin. Users sometimes fill boolean values as true, other times as "true", which can be a problem if you are expecting a boolean or a string specifically. Also, a nil value can be considered 'false', which is not always the case when treating data.

It sounds like that this is an issue specific to Active Admin.
Please tell them, instead of Ruby.

----------------------------------------
Feature #21556: Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
https://bugs.ruby-lang.org/issues/21556#change-114579

* Author: Phalado (Raphael Cordeiro)
* Status: Feedback
----------------------------------------
Sometimes we need to check for an exact `true` or `false` value. This can be a string or a boolean value.

Usually, what I do to solve this is something like `value.to_s == true`, this way covering for strings, booleans, and nil values.

The idea of these new methods is to check for the exact value, being it a String, a Boolean, or even a Nil value.

This is the result obtained:

``` ruby
# String

'true'.true? # true
'false'.true? # false
''.true? # false

'true'.false? # false
'false'.false? # true
''.false? # false

# Boolean

true.true? # true
true.false? # false

false.true? # false
false.false? # true

# Nil

nil.true? # false
nil.false? # false
```




-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-09-14  1:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-29 17:28 [ruby-core:123122] [Ruby Feature#21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String Phalado (Raphael Cordeiro) via ruby-core
2025-08-29 22:50 ` [ruby-core:123129] " nobu (Nobuyoshi Nakada) via ruby-core
2025-08-30 22:58 ` [ruby-core:123139] " Phalado (Raphael Cordeiro) via ruby-core
2025-08-31  0:00 ` [ruby-core:123140] " austin (Austin Ziegler) via ruby-core
2025-09-01  0:54 ` [ruby-core:123149] " shan (Shannon Skipper) via ruby-core
2025-09-01 13:44 ` [ruby-core:123157] " Phalado (Raphael Cordeiro) via ruby-core
2025-09-01 13:50 ` [ruby-core:123158] " Phalado (Raphael Cordeiro) via ruby-core
2025-09-14  1:30 ` [ruby-core:123245] " nobu (Nobuyoshi Nakada) via ruby-core
2025-09-14  1:35 ` [ruby-core:123246] " nobu (Nobuyoshi Nakada) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).