class GithubToCanvasQuiz::Parser::Canvas::Question
Attributes
data[R]
Public Class Methods
new(data)
click to toggle source
# File lib/github_to_canvas_quiz/parser/canvas/question.rb, line 11 def initialize(data) @data = data end
Public Instance Methods
parse()
click to toggle source
# File lib/github_to_canvas_quiz/parser/canvas/question.rb, line 15 def parse Model::Question.new( course_id: data['course_id'], quiz_id: data['quiz_id'], id: data['id'], type: data['question_type'], name: data['question_name'], description: clean_html(data['question_text']), sources: sources, answers: answers, distractors: distractors ) end
Private Instance Methods
answers()
click to toggle source
# File lib/github_to_canvas_quiz/parser/canvas/question.rb, line 43 def answers data['answers'].map do |answer| Answer.for(data['question_type'], answer) end end
distractors()
click to toggle source
# File lib/github_to_canvas_quiz/parser/canvas/question.rb, line 49 def distractors (data['matching_answer_incorrect_matches'] || '').split("\n") end
sources()
click to toggle source
# File lib/github_to_canvas_quiz/parser/canvas/question.rb, line 31 def sources html = data['neutral_comments_html'] return unless html Nokogiri::HTML5.fragment(html).css('a').map do |node| { 'name' => clean_html(node.content), 'url' => node['href'] } end end