demarches-normaliennes/app/validators/expression_reguliere_validator.rb
Martin 86b44cd0a4 iamelioration(champ.expression_reguliere): empeche le rebase lorsqu'il y a un changement sur un type de champ expression reguliere.
Plus quelques adaptation de style cf: pas besoin d'executer la validation du champs expression reguliere dans controller, le validateur le fait sur le champ au moment de sauver le dossier avec le bon context
2023-10-16 11:52:05 +00:00

11 lines
365 B
Ruby

class ExpressionReguliereValidator < ActiveModel::Validator
def validate(record)
if record.value.present?
if !record.value.match?(Regexp.new(record.expression_reguliere, timeout: 5.0))
record.errors.add(:value, :invalid_regexp)
end
end
rescue Regexp::TimeoutError
record.errors.add(:expression_reguliere, :evil_regexp)
end
end