From 38b7307450024f2826aad97894a77f398e426ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 10 Oct 2019 03:30:31 +0200 Subject: [PATCH] Use `respond_to?` instead of `try` Usually when we use `try` we actually mean `try!`, which is the same as the safe navigation operator. However, there are a few cases where we actually mean to execute a method if the object responds to that method. In those cases using `try` would actually be OK, but in order to avoid confusion as to whether we mean to check for `respond_to?` or we mean to use safe navigation, I'm removing all usages of `try`. --- app/helpers/welcome_helper.rb | 2 +- app/models/comment.rb | 2 +- app/models/concerns/notifiable.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index 6579464d5..0412898b4 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -25,7 +25,7 @@ module WelcomeHelper end def calculate_image_path(recommended, image_default) - if recommended.try(:image) && recommended.image.present? && recommended.image.attachment.exists? + if recommended.respond_to?(:image) && recommended.image.present? && recommended.image.attachment.exists? recommended.image.attachment.send("url", :medium) elsif image_default.present? image_default diff --git a/app/models/comment.rb b/app/models/comment.rb index e80a5e048..4a8351577 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -120,7 +120,7 @@ class Comment < ApplicationRecord end def call_after_commented - commentable.try(:after_commented) + commentable.after_commented if commentable.respond_to?(:after_commented) end def self.body_max_length diff --git a/app/models/concerns/notifiable.rb b/app/models/concerns/notifiable.rb index aa7d4d3bc..d9ba2f914 100644 --- a/app/models/concerns/notifiable.rb +++ b/app/models/concerns/notifiable.rb @@ -29,8 +29,8 @@ module Notifiable def check_availability(resource) resource.present? && - resource.try(:hidden_at).nil? && - resource.try(:retired_at).nil? + !(resource.respond_to?(:hidden?) && resource.hidden?) && + !(resource.respond_to?(:retired?) && resource.retired?) end def linkable_resource