Class: Might::FilterParameter
- Inherits:
-
Object
- Object
- Might::FilterParameter
- Defined in:
- lib/might/filter_parameter.rb
Overview
User provided filtering on particular parameter
Instance Attribute Summary collapse
- #definition ⇒ ParameterDefinition? readonly
- #predicate ⇒ String? readonly
Instance Method Summary collapse
- #==(other) ⇒ Object
- #errors ⇒ Object
-
#initialize(value, predicate, definition) ⇒ FilterParameter
constructor
A new instance of FilterParameter.
- #invalid? ⇒ Boolean
-
#provided? ⇒ Boolean
Check if this parameter provided by user.
- #valid? ⇒ Boolean
-
#value ⇒ String+
TODO: memoize.
Constructor Details
#initialize(value, predicate, definition) ⇒ FilterParameter
Returns a new instance of FilterParameter.
14 15 16 17 18 |
# File 'lib/might/filter_parameter.rb', line 14 def initialize(value, predicate, definition) @value = value @predicate = predicate.to_s @definition = definition end |
Instance Attribute Details
#definition ⇒ ParameterDefinition? (readonly)
12 13 14 |
# File 'lib/might/filter_parameter.rb', line 12 def definition @definition end |
#predicate ⇒ String? (readonly)
8 9 10 |
# File 'lib/might/filter_parameter.rb', line 8 def predicate @predicate end |
Instance Method Details
#==(other) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/might/filter_parameter.rb', line 30 def ==(other) is_a?(other.class) && value == other.value && predicate == other.predicate && definition == other.definition end |
#errors ⇒ Object
55 56 57 |
# File 'lib/might/filter_parameter.rb', line 55 def errors validators.map(&:errors).flat_map(&:full_messages).compact.uniq end |
#invalid? ⇒ Boolean
51 52 53 |
# File 'lib/might/filter_parameter.rb', line 51 def invalid? validators.any?(&:invalid?) end |
#provided? ⇒ Boolean
Check if this parameter provided by user. If the parameter defined by not given by user this returns false.
26 27 28 |
# File 'lib/might/filter_parameter.rb', line 26 def provided? value.present? && predicate.present? end |
#valid? ⇒ Boolean
47 48 49 |
# File 'lib/might/filter_parameter.rb', line 47 def valid? validators.all?(&:valid?) end |
#value ⇒ String+
TODO: memoize
39 40 41 42 43 44 45 |
# File 'lib/might/filter_parameter.rb', line 39 def value if @value.is_a?(Array) @value.map { |v| definition.coerce(v) } else definition.coerce(@value) end end |