Class: Plutonium::Query::Filters::Boolean
- Inherits:
-
Plutonium::Query::Filter
- Object
- Base
- Plutonium::Query::Filter
- Plutonium::Query::Filters::Boolean
- Defined in:
- lib/plutonium/query/filters/boolean.rb
Overview
Boolean filter for true/false columns
Instance Attribute Summary
Attributes inherited from Plutonium::Query::Filter
Instance Method Summary collapse
- #apply(scope, value:) ⇒ Object
- #customize_inputs ⇒ Object
-
#initialize(true_label: "Yes", false_label: "No") ⇒ Boolean
constructor
A new instance of Boolean.
Methods inherited from Plutonium::Query::Filter
Methods included from Definition::Presentable
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
19 20 21 22 23 24 |
# File 'lib/plutonium/query/filters/boolean.rb', line 19 def apply(scope, value:) return scope if value.blank? bool_value = ActiveModel::Type::Boolean.new.cast(value) scope.where(key => bool_value) end |
#customize_inputs ⇒ Object
26 27 28 29 30 31 |
# File 'lib/plutonium/query/filters/boolean.rb', line 26 def customize_inputs input :value, as: :select, choices: [[@true_label, "true"], [@false_label, "false"]], include_blank: "All" end |