From 7f1b798b05ffb57adbe10d9766bda2b0d1bc808d Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 27 Dec 2020 05:26:21 -0600 Subject: [PATCH] searchable: refactor search_boolean_attribute. --- app/logical/concerns/searchable.rb | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/app/logical/concerns/searchable.rb b/app/logical/concerns/searchable.rb index a83a9c83a..b1f9610b6 100644 --- a/app/logical/concerns/searchable.rb +++ b/app/logical/concerns/searchable.rb @@ -102,16 +102,11 @@ module Searchable where_operator(qualified_column, *range) end - def search_boolean_attribute(attribute, params) - return all unless params.key?(attribute) - - value = params[attribute].to_s - if value.truthy? - where(attribute => true) - elsif value.falsy? - where(attribute => false) + def search_boolean_attribute(attr, params) + if params[attr].present? + boolean_attribute_matches(attr, params[attr]) else - raise ArgumentError, "value must be truthy or falsy" + all end end @@ -133,6 +128,18 @@ module Searchable where_operator(qualified_column, *range) end + def boolean_attribute_matches(attribute, value) + value = value.to_s + + if value.truthy? + where(attribute => true) + elsif value.falsy? + where(attribute => false) + else + raise ArgumentError, "value must be truthy or falsy" + end + end + def text_attribute_matches(attribute, value, index_column: nil, ts_config: "english") return all unless value.present?