I often write code to provide a default value upon encountering nil/empty value.
E.g:
category = order.category || "Any"
# OR
category = order.category.empty? ? "Any" : order.category
I am about to extend the try
method to handle this idiom.
category = order.try(:category, :on_nill => "Any")
# OR
category = order.try(:category, :on_empty=> "Any")
I am wondering if Rails/Ruby has some method to handle this idiom?
Note:
I am trying to eliminate repetition of || / or / ?
operator based idioms.
Essentially I am looking for a equivalent of try
method for handling default substitution scenarios.
Without try
method:
product_id = user.orders.first.product_id unless user.orders.first.nil?
With try
method:
product_id = user.orders.first.try(:product_id)
It is easy to implement a generic approach to handle this idiom, but I want to make sure I do not reinvent the wheel.