Class: Filterameter::FilterDeclaration
- Inherits:
-
Object
- Object
- Filterameter::FilterDeclaration
- Defined in:
- lib/filterameter/filter_declaration.rb
Overview
Filter Declaration
Class FilterDeclaration captures the filter declaration within the controller.
Constant Summary collapse
- VALID_RANGE_OPTIONS =
[true, :min_only, :max_only].freeze
Instance Attribute Summary collapse
-
#association ⇒ Object
readonly
Returns the value of attribute association.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#parameter_name ⇒ Object
readonly
Returns the value of attribute parameter_name.
-
#validations ⇒ Object
readonly
Returns the value of attribute validations.
Instance Method Summary collapse
- #filter_on_empty? ⇒ Boolean
-
#initialize(parameter_name, options) ⇒ FilterDeclaration
constructor
A new instance of FilterDeclaration.
- #maximum? ⇒ Boolean
- #minimum? ⇒ Boolean
- #nested? ⇒ Boolean
- #partial_options ⇒ Object
- #partial_search? ⇒ Boolean
- #range? ⇒ Boolean
- #range_enabled? ⇒ Boolean
- #validations? ⇒ Boolean
Constructor Details
#initialize(parameter_name, options) ⇒ FilterDeclaration
Returns a new instance of FilterDeclaration.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/filterameter/filter_declaration.rb', line 14 def initialize(parameter_name, ) @parameter_name = parameter_name.to_s () @name = .fetch(:name, parameter_name).to_s @association = [:association] @filter_on_empty = .fetch(:filter_on_empty, false) @validations = Array.wrap([:validates]) @raw_partial_options = .fetch(:partial, false) @raw_range = [:range] end |
Instance Attribute Details
#association ⇒ Object (readonly)
Returns the value of attribute association.
12 13 14 |
# File 'lib/filterameter/filter_declaration.rb', line 12 def association @association end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
12 13 14 |
# File 'lib/filterameter/filter_declaration.rb', line 12 def name @name end |
#parameter_name ⇒ Object (readonly)
Returns the value of attribute parameter_name.
12 13 14 |
# File 'lib/filterameter/filter_declaration.rb', line 12 def parameter_name @parameter_name end |
#validations ⇒ Object (readonly)
Returns the value of attribute validations.
12 13 14 |
# File 'lib/filterameter/filter_declaration.rb', line 12 def validations @validations end |
Instance Method Details
#filter_on_empty? ⇒ Boolean
34 35 36 |
# File 'lib/filterameter/filter_declaration.rb', line 34 def filter_on_empty? @filter_on_empty end |
#maximum? ⇒ Boolean
58 59 60 |
# File 'lib/filterameter/filter_declaration.rb', line 58 def maximum? @raw_range == :max_only end |
#minimum? ⇒ Boolean
54 55 56 |
# File 'lib/filterameter/filter_declaration.rb', line 54 def minimum? @raw_range == :min_only end |
#nested? ⇒ Boolean
26 27 28 |
# File 'lib/filterameter/filter_declaration.rb', line 26 def nested? @association.present? end |
#partial_options ⇒ Object
42 43 44 |
# File 'lib/filterameter/filter_declaration.rb', line 42 def @partial_options ||= @raw_partial_options ? Options::PartialOptions.new(@raw_partial_options) : nil end |
#partial_search? ⇒ Boolean
38 39 40 |
# File 'lib/filterameter/filter_declaration.rb', line 38 def partial_search? .present? end |
#range? ⇒ Boolean
50 51 52 |
# File 'lib/filterameter/filter_declaration.rb', line 50 def range? @raw_range == true end |
#range_enabled? ⇒ Boolean
46 47 48 |
# File 'lib/filterameter/filter_declaration.rb', line 46 def range_enabled? @raw_range.present? end |
#validations? ⇒ Boolean
30 31 32 |
# File 'lib/filterameter/filter_declaration.rb', line 30 def validations? !@validations.empty? end |