Method: PFA::RelativePFA#add

Defined in:
lib/pfa/relative_pfa.rb

#add(key, value) ⇒ Object

Note:

Je crois que maintenant value est toujours un [Hash] définis- sant les données de la clé.

Ajout d’un nœud dans le PFA

On utilise pour le faire : pfa.add(key, value). Si c’est un nœud, la valeur contient ‘<horloge>’, d: “description” et peut-être la clé :pfa_id qui définit l’index du PFA à utiliser

La clé :t peut-être remplacée par :time ou :start_at La clé :d peut-être remplacée par :description



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/pfa/relative_pfa.rb', line 69

def add(key, value)
  key = key.to_sym
  if AbsolutePFA.data[:nodes].key?(key)
    #
    # Ajout d'un nœud
    # 
    # @note
    #   Un noeud doit toujours être défini par une table contenant
    #   :t (ou :time) et :d (ou :description)
    # 
    #   La donnée doit être valide. On en profite aussi pour bien
    #   définir le temps.
    #
    value = value_valid?(value, key)
    data.merge!(key => RelativePFA::Node.new(self, key, value))

  elsif AbsolutePFA.data[:times].key?(key)
    #
    # Ajout d'une valeur temporelle
    # 
    data.merge!(key => DataTime.new(self, key, value))
  else
    raise PFAFatalError.new(100, **{key: ":#{key}"})
  end
end