Class: RubyUIAdmin::Filters::BaseFilter
- Inherits:
-
Object
- Object
- RubyUIAdmin::Filters::BaseFilter
- Defined in:
- lib/ruby_ui_admin/filters/base_filter.rb
Overview
Base class for filters. Subclasses implement apply(request, query, value)
and (for select-style filters) options.
Direct Known Subclasses
BooleanFilter, MultipleSelectFilter, SelectFilter, TextFilter
Instance Attribute Summary collapse
-
#arguments ⇒ Object
readonly
Returns the value of attribute arguments.
Class Method Summary collapse
- .empty_message ⇒ Object
- .empty_message=(value) ⇒ Object
-
.filter_type ⇒ Object
Inherited down the chain (subclasses of SelectFilter are :select, etc.).
- .name ⇒ Object
-
.name=(value) ⇒ Object
Class-level
self.name =while still falling back to the real class name (so Zeitwerk/Rails keep working when no display name is set). - .register_type(type) ⇒ Object
Instance Method Summary collapse
-
#apply(request, query, value) ⇒ Object
Override in subclasses.
-
#default ⇒ Object
Override to provide a default selected value.
- #empty_message ⇒ Object
-
#initialize(arguments: {}) ⇒ BaseFilter
constructor
A new instance of BaseFilter.
- #name ⇒ Object
-
#options ⇒ Object
Override in select/multiple-select filters.
-
#param_key ⇒ Object
Unique key used in the query string, e.g.
- #type ⇒ Object
Constructor Details
#initialize(arguments: {}) ⇒ BaseFilter
Returns a new instance of BaseFilter.
42 43 44 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 42 def initialize(arguments: {}) @arguments = arguments || {} end |
Instance Attribute Details
#arguments ⇒ Object (readonly)
Returns the value of attribute arguments.
40 41 42 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 40 def arguments @arguments end |
Class Method Details
.empty_message ⇒ Object
23 24 25 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 23 def defined?(@empty_message) ? @empty_message : nil end |
.empty_message=(value) ⇒ Object
19 20 21 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 19 def (value) @empty_message = value end |
.filter_type ⇒ Object
Inherited down the chain (subclasses of SelectFilter are :select, etc.).
28 29 30 31 32 33 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 28 def filter_type return @filter_type if defined?(@filter_type) && @filter_type return superclass.filter_type if superclass.respond_to?(:filter_type) nil end |
.name ⇒ Object
15 16 17 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 15 def name @display_name || super end |
.name=(value) ⇒ Object
Class-level self.name = while still falling back to the real class
name (so Zeitwerk/Rails keep working when no display name is set).
11 12 13 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 11 def name=(value) @display_name = value end |
.register_type(type) ⇒ Object
35 36 37 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 35 def register_type(type) @filter_type = type.to_sym end |
Instance Method Details
#apply(request, query, value) ⇒ Object
Override in subclasses.
66 67 68 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 66 def apply(request, query, value) query end |
#default ⇒ Object
Override to provide a default selected value.
76 77 78 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 76 def default nil end |
#empty_message ⇒ Object
54 55 56 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 54 def self.class. end |
#name ⇒ Object
46 47 48 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 46 def name self.class.name end |
#options ⇒ Object
Override in select/multiple-select filters.
71 72 73 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 71 def {} end |
#param_key ⇒ Object
Unique key used in the query string, e.g.
RubyUIAdmin::Filters::PublishedFilter -> "published_filter".
Uses to_s (not the overridable name) to get the real class name.
61 62 63 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 61 def param_key self.class.to_s.sub(/^RubyUIAdmin::Filters::/, "").gsub("::", "_").underscore end |
#type ⇒ Object
50 51 52 |
# File 'lib/ruby_ui_admin/filters/base_filter.rb', line 50 def type self.class.filter_type end |