Class: Plutonium::Query::Filters::Boolean
Overview
Boolean filter for true/false columns
Instance Attribute Summary
#key
Instance Method Summary
collapse
lookup
#description, #icon, #label
Constructor Details
#initialize(true_label: "Yes", false_label: "No") ⇒ Boolean
Returns a new instance of Boolean.
13
14
15
16
17
|
# File 'lib/plutonium/query/filters/boolean.rb', line 13
def initialize(true_label: "Yes", false_label: "No", **)
super(**)
@true_label = true_label
@false_label = false_label
end
|
Instance Method Details
#apply(scope, value:) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/plutonium/query/filters/boolean.rb', line 24
def apply(scope, value:)
return scope if value.blank?
bool_value = ActiveModel::Type::Boolean.new.cast(value)
scope.where(key => bool_value)
end
|
31
32
33
34
35
36
|
# File 'lib/plutonium/query/filters/boolean.rb', line 31
def customize_inputs
input :value,
as: :select,
choices: [[@true_label, "true"], [@false_label, "false"]],
include_blank: "All"
end
|
#humanize_value(value) ⇒ Object
19
20
21
22
|
# File 'lib/plutonium/query/filters/boolean.rb', line 19
def humanize_value(value)
return "" if value.blank?
ActiveModel::Type::Boolean.new.cast(value) ? @true_label : @false_label
end
|