Converting an empty string to nil in place?

in-place, null, ruby, string

Solution

The clean way is using `presence`.

Let's test it.

'    '.presence
# => nil


''.presence
# => nil


'text'.presence
# => "text"


nil.presence
# => nil


[].presence
# => nil


{}.presence
# => nil

true.presence
# => true

false.presence
# => nil

Please note this method is from Ruby on Rails v4.2.7 https://apidock.com/rails/Object/presence

NOTE: Not work on IRB, work with Ruby on Rails!

Problem

I'm looking for a way to convert an empty string to `nil` in place using Ruby. If I end up with a string that is empty spaces I can do ``` " ".strip! ``` This will give me the empty string `""`. What I would like to be able to do is something like this. ``` " ".strip!.to_nil! ``` This will get an in place replacement of the empty string with `nil`. `to_nil!` would change the string to `nil` directly if it is `.empty?` otherwise if the string is not empty it would not change. The key here is that I want it to happen directly rather than through an assignment such as ``` f = nil if f.strip!.empty? ```

Original source