This rule was added in rubocop 1.44.0. It's useful to avoid accidental `unless !condition` clauses. Note we aren't replacing `unless zero?` with `if nonzero?` because we never use `nonzero?`; using it sounds like `if !zero?`. Replacing `unless any?` with `if none?` is only consistent if we also replace `unless present?` with `if blank?`, so we're also adding this case. For consistency, we're also replacing `unless blank?` with `if present?`. We're also simplifying code dealing with `> 0` conditions in order to make the code (hopefully) easier to understand. Also for consistency, we're enabling the `Style/InverseMethods` rule, which follows a similar idea.
28 lines
758 B
Ruby
28 lines
758 B
Ruby
module FollowablesHelper
|
|
def followable_type_title(followable_type)
|
|
t("activerecord.models.#{followable_type.underscore}.other")
|
|
end
|
|
|
|
def followable_icon(followable)
|
|
{ proposals: "Proposal", budget: "Budget::Investment" }.invert[followable]
|
|
end
|
|
|
|
def render_follow(follow)
|
|
return if follow.followable.blank?
|
|
|
|
followable = follow.followable
|
|
partial = "#{followable_class_name(followable)}_follow"
|
|
locals = { followable_class_name(followable).to_sym => followable }
|
|
|
|
render partial, locals
|
|
end
|
|
|
|
def followable_class_name(followable)
|
|
followable.class.to_s.parameterize(separator: "_")
|
|
end
|
|
|
|
def find_or_build_follow(user, followable)
|
|
Follow.find_or_initialize_by(user: user, followable: followable)
|
|
end
|
|
end
|