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],
}.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