Sha256: 8dd9f675bec27a3fb7c5cd4b952f2abef37034e9d120a65965c88d5679793581

Contents?: true

Size: 929 Bytes

Versions: 2

Compression:

Stored size: 929 Bytes

Contents

  
$:.insert(0, 'lib')
require 'namarara'

def verify_input
  parser = Namarara::Parser.new(Namarara::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()

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
namarara-0.9.5 demo.rb
namarara-0.9.4 demo.rb