Open william-stacken opened 2 months ago
It's compared to nil
because we support all Ruby objects including BasicObject
. Unfortunately, BasicObject
doesn't work with .nil?
.
Having said that, people shouldn't really be throwing around BasicObject
and it added complexity to the code that I'm not thrilled with. I'd consider removing that and using .nil?
. It'll have to be in a major release though since it would technically be a breaking change.
We are using an interactor that lists models. It accepts a
Mongoid::Criteria
as input and a filter that is used to limit the scope of the criteria further. Occasionally, this interactor would run very slowly, and we found that in thematches?
method inobject_filter.rb
, the value is compared againstnil
. This means that if the value is a potentially expensiveMongoid::Criteria
object, performance could be impacted as the criteria must be resolved to perform the comparison.This may have already been considered, but would it be possible to use
.nil?
for comparision instead? This would leave the criteria unresolved.