47 lines
943 B
Ruby
47 lines
943 B
Ruby
|
|
||
|
$:.insert(0, 'lib')
|
||
|
require 'mm2ep_depend'
|
||
|
|
||
|
def verify_input
|
||
|
parser = Mm2ep::Depend::Parser.new(Mm2ep::Depend::Lexer.new)
|
||
|
|
||
|
# on démarre avec zéro alertes
|
||
|
warnings = []
|
||
|
|
||
|
# ma liste de regles pour lesquelles je veux des alertes
|
||
|
rules = [
|
||
|
'est_adulte AND est_subordone',
|
||
|
'est_adulte AND a_des_enfants',
|
||
|
'NOT est_adulte'
|
||
|
# ...
|
||
|
]
|
||
|
|
||
|
# contexte récupéré en HTTP ou en base de données
|
||
|
context = {
|
||
|
"est_adulte" => 'false',
|
||
|
"est_subordone" => 'true',
|
||
|
"a_des_enfants" => 'true'
|
||
|
# 80 valeurs de plus si on veut
|
||
|
}
|
||
|
|
||
|
rules.each do |rule|
|
||
|
parser.names = context
|
||
|
token = parser.parse(rule)
|
||
|
res = token.compute
|
||
|
if res then
|
||
|
warnings << "La règle #{rule} n'est pas respectée"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if not warnings.empty?
|
||
|
puts "Attention: vous collectez des DCP de personnes vulnerables"
|
||
|
puts warnings.join("\n")
|
||
|
else
|
||
|
puts "Rien à dire :-)"
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
verify_input()
|
||
|
|