Class: Plutonium::Query::Filters::Select
- Inherits:
-
Plutonium::Query::Filter
- Object
- Base
- Plutonium::Query::Filter
- Plutonium::Query::Filters::Select
- Defined in:
- lib/plutonium/query/filters/select.rb
Overview
Select filter for choosing from a predefined collection of options
Instance Attribute Summary
Attributes inherited from Plutonium::Query::Filter
Instance Method Summary collapse
- #apply(scope, value:) ⇒ Object
- #customize_inputs ⇒ Object
-
#initialize(choices: nil, multiple: false) ⇒ Select
constructor
A new instance of Select.
Methods inherited from Plutonium::Query::Filter
Methods included from Definition::Presentable
Constructor Details
#initialize(choices: nil, multiple: false) ⇒ Select
Returns a new instance of Select.
16 17 18 19 20 |
# File 'lib/plutonium/query/filters/select.rb', line 16 def initialize(choices: nil, multiple: false, **) super(**) @choices = choices @multiple = multiple end |
Instance Method Details
#apply(scope, value:) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/plutonium/query/filters/select.rb', line 22 def apply(scope, value:) return scope if value.blank? if @multiple && value.is_a?(Array) scope.where(key => value.reject(&:blank?)) else scope.where(key => value) end end |
#customize_inputs ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/plutonium/query/filters/select.rb', line 32 def customize_inputs input :value, as: :select, choices: resolved_choices, multiple: @multiple, include_blank: @multiple ? false : "All" end |