Method: OpenC3::ReactionModel#validate_triggers

Defined in:
lib/openc3/models/reaction_model.rb

#validate_triggers(triggers) ⇒ Object



142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/openc3/models/reaction_model.rb', line 142

def validate_triggers(triggers)
  unless triggers.is_a?(Array)
    raise ReactionInputError.new "invalid triggers, must be array of hashes: #{triggers}"
  end
  trigger_hash = Hash.new()
  triggers.each do | trigger |
    unless trigger.is_a?(Hash)
      raise ReactionInputError.new "invalid trigger, must be hash: #{trigger}"
    end
    if trigger['name'].nil? || trigger['group'].nil?
      raise ReactionInputError.new "invalid trigger, must contain 'name' and 'group' keys: #{trigger}"
    end
    trigger_name = trigger['name']
    unless trigger_hash[trigger_name].nil?
      raise ReactionInputError.new "no duplicate triggers allowed: #{triggers}"
    else
      trigger_hash[trigger_name] = 1
    end
  end
  return triggers
end