Module: Valideizer::RulesChecker

Included in:
Core
Defined in:
lib/valideizer/rules_checker.rb

Constant Summary collapse

RULES_EXCEPTIONS =
i[null default]
RULES_W_FRIENDLY =
{
  eql:           i[type default null],
  ot:            i[type default null],
  gt:            i[type default null lt lte],
  gte:           i[type default null lt lte],
  lt:            i[type default null gt gte],
  lte:           i[type default null gt gte],
  range:         i[type default null],
  enum:          i[type default null],
  type:          i[default null eql ot gt gte lt lte range enum regexp length format],
  array_type:    i[default null length],
  custom_type:   i[default null],
  active_record: i[default null],
  length:        i[type array],
  regexp:        i[type default null],
  null:          i[all],
  default:       i[all],
  format:        i[type default null],
}.freeze
VALID_TYPE_RULES =
{
  integer:  i[eql gt gte lt lte ot range enum null default],
  float:    i[eql gt gte lt lte ot range enum null default],
  string:   i[enum length eql ot regexp null default],
  datetime: i[null default format],
  json:     i[null default],
  boolean:  i[null default],
  hash:     i[null default length],
  array:    i[null default length enum uniq],
}.freeze

Instance Method Summary collapse

Instance Method Details

#check_rule_set(rules) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/valideizer/rules_checker.rb', line 36

def check_rule_set(rules)
  errors = []
  check_wrong_rules(rules, errors)
  check_conflicting_rules(rules, errors)
  check_type_rules(rules, errors)

  raise errors.join('. ') if errors.any?
end