Module: Qti::V1::Models::Interactions
- Defined in:
- lib/qti/v1/models/interactions.rb,
lib/qti/v1/models/interactions/base_interaction.rb,
lib/qti/v1/models/interactions/match_interaction.rb,
lib/qti/v1/models/interactions/choice_interaction.rb,
lib/qti/v1/models/interactions/string_interaction.rb,
lib/qti/v1/models/interactions/upload_interaction.rb,
lib/qti/v1/models/interactions/formula_interaction.rb,
lib/qti/v1/models/interactions/numeric_interaction.rb,
lib/qti/v1/models/interactions/ordering_interaction.rb,
lib/qti/v1/models/interactions/fill_blank_interaction.rb,
lib/qti/v1/models/interactions/canvas_multiple_dropdown.rb,
lib/qti/v1/models/interactions/base_fill_blank_interaction.rb
Defined Under Namespace
Classes: BaseFillBlankInteraction, BaseInteraction, CanvasMultipleDropdownInteraction, ChoiceInteraction, FillBlankInteraction, FormulaInteraction, MatchInteraction, NumericInteraction, OrderingInteraction, StringInteraction, UploadInteraction
Class Method Summary collapse
-
.interaction_model(node, parent) ⇒ Object
This one finds the correct parsing model based on the provided xml node.
Class Method Details
.interaction_model(node, parent) ⇒ Object
This one finds the correct parsing model based on the provided xml node
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/qti/v1/models/interactions.rb', line 10 def self.interaction_model(node, parent) ordered_classes = [CanvasMultipleDropdownInteraction, FormulaInteraction, NumericInteraction] ordered_classes.each do |interaction_class| match = interaction_class.matches(node, parent) return match if match end subclasses = constants.map { |c| const_get(c) } - ordered_classes matches = subclasses.each_with_object([]) do |interaction_class, result| match = interaction_class.matches(node, parent) result << match if match end raise UnsupportedSchema if matches.size != 1 matches.first end |