module ActiveInteraction::Validation

Validates inputs using filters.

@private

Public Class Methods

validate(context, filters, inputs) click to toggle source

@param context [Base] @param filters [Hash{Symbol => Filter}] @param inputs [Hash{Symbol => Object}]

# File lib/active_interaction/modules/validation.rb, line 12
def validate(context, filters, inputs)
  filters.each_with_object([]) do |(name, filter), errors|
    filter.clean(inputs[name], context)
  rescue NoDefaultError
    nil
  rescue InvalidNestedValueError => e
    errors << [filter.name, :invalid_nested, { name: e.filter_name.inspect, value: e.input_value.inspect }]
  rescue InvalidValueError
    errors << [filter.name, :invalid_type, { type: type(filter) }]
  rescue MissingValueError
    errors << [filter.name, :missing]
  end
end

Private Class Methods

type(filter) click to toggle source

@param filter [Filter]

# File lib/active_interaction/modules/validation.rb, line 29
def type(filter)
  I18n.translate("#{Base.i18n_scope}.types.#{filter.class.slug}")
end