У меня есть объект запроса в проекте rails, который ищет ресурс с несколькими фильтрами (гонорары, имя, специальность, годы опыта).
class SearchDoctors
attr_accessor :initial_scope, :search_params
def self.call(initial_scope, search_params)
new(initial_scope, search_params).call
end
def initialize(initial_scope, search_params)
@initial_scope = initial_scope
@search_params = search_params
end
# Assignment branch condition on call method
def call
scoped = filter_by_speciality(initial_scope, search_params[:speciality])
scoped = filter_by_name(scoped, search_params[:name])
scoped = filter_by_fees(scoped,
search_params[:fees_from],
search_params[:fees_to])
filter_by_years_of_experience(scoped,
search_params[:experience_from],
search_params[:experience_to])
end
end
Методы фильтра - это частные методы, которые для краткости удалены.
Метод call выдает предупреждение rubocop "условие ветвления присваивания слишком высокое", что имеет смысл, потому что делает много. Как я могу изменить его, чтобы обойти предупреждение о рубокопе?
Я видел несколько похожих вопросов, но ни один из них не решил мою проблему.