class LIVR::Rules::Meta::Or

Public Class Methods

new(*rule_sets) click to toggle source
# File lib/livr/rules/meta.rb, line 171
def initialize(*rule_sets)
  @rule_sets = rule_sets
  @validators = @rule_sets.map do |rules|
    livr = { field: rules }
    Validator.new(livr).prepare
  end
end

Public Instance Methods

call(value, user_data, field_results) click to toggle source
# File lib/livr/rules/meta.rb, line 179
def call(value, user_data, field_results)
  return if is_no_value(value)

  last_error = nil
  @validators.each do |validator|
    result = validator.validate(field: value)
    if result
      field_results << result[:field]
      return nil
    else
      last_error = validator.get_errors[:field]
    end
  end

  last_error ? last_error : nil
end