Not sure what you are talking about on number 1. For number 2 use
Object#blank?
And
Object#present?
Not sure what you are talking about on number 1. For number 2 use
Object#blank?
And
Object#present?
class Array
def filter_by_only_except options
self & Array.wrap(options[:only] || self) - Array.wrap(options[:except] || )
end
end
present?
is (not blank?)
but not (not nil?)
…Good example! blank?
has an opposite method but not nil?
. Yes?
Use a 3rd party lib like http://extensions.rubyforge.org/rdoc/index.html. It has non_nil?, not_nil?
blank? and present? probably satisfy most rails devs needs.
Sure I can write my own one-line not_nil?
method But is it logical to:
nil?
present?
in opposite to blank?
not_nil?
Or can’t I say about logical here?Sure I can write my own one-line
not_nil?
method But is it logical to:
- have
nil?
- have
present?
in opposite toblank?
- don’t have
not_nil?
Or can’t I say about logical here?
The standard Ruby idiom for the inverse of if object.nil?
is if object
. Yes, there is an edge case when object == false, but other than that it works great and should be how you write your code. There is no need for another method that just makes code wordier and harder to read.
–josh
“How many ruby developers does it does to ask if something is not false?”
Although non-standard, I would argue that the most logical way to write that is:
unless object.nil?
I know it’s a double-negative, but in fact if you think about it it makes perfect sense – you’re saying you want to do something unless this thing is nil.
And while the standard may be to say if object, you still have to take a mental moment when looking at that code to think about truthy and falsy, whereas my proposal above basically means you don’t have to take that split second to consider truthy and falsy and you get around Josh’s edge case too.
It seems to me that if what you’re interested in is a thing being not nil, you should write code that expresses that, instead of writing code where the next developer may have to think about the many truthy values of ruby.
Obviously, this is a 6-of-one-half-dozen-of-the-other question.
Another double-negative idiom for truthiness is "!!": !!ob ? something_main_and_important : 'no'
I can't see much sense in an additional ".non_nil?" method when there's at least three alternatives already given