class Right::FilterParameter
User provided filtering on particular parameter
Attributes
definition[R]
@return [ParameterDefinition, nil]
predicate[R]
@return [String, nil]
Public Class Methods
new(value, predicate, definition)
click to toggle source
# File lib/right/filter_parameter.rb, line 14 def initialize(value, predicate, definition) @value = value @predicate = predicate.to_s @definition = definition end
Public Instance Methods
==(other)
click to toggle source
# File lib/right/filter_parameter.rb, line 30 def ==(other) is_a?(other.class) && value == other.value && predicate == other.predicate && definition == other.definition end
errors()
click to toggle source
# File lib/right/filter_parameter.rb, line 55 def errors validators.map(&:errors).flat_map(&:full_messages).compact.uniq end
invalid?()
click to toggle source
# File lib/right/filter_parameter.rb, line 51 def invalid? validators.any?(&:invalid?) end
provided?()
click to toggle source
Check if this parameter provided by user. If the parameter defined by not given by user this returns false. @return [Boolean]
# File lib/right/filter_parameter.rb, line 26 def provided? value.present? && predicate.present? end
valid?()
click to toggle source
# File lib/right/filter_parameter.rb, line 47 def valid? validators.all?(&:valid?) end
value()
click to toggle source
@return [String, Array<String>] TODO: memoize
# File lib/right/filter_parameter.rb, line 39 def value if @value.is_a?(Array) @value.map { |v| definition.coerce(v) } else definition.coerce(@value) end end
Private Instance Methods
validators()
click to toggle source
# File lib/right/filter_parameter.rb, line 61 def validators values_for_validation = @value.is_a?(Array) ? @value : [@value] @validators ||= values_for_validation.map { |v| definition.validator.new(v) } end