class Senkyoshi::OutcomeDefinition

Attributes

asidataid[R]
content_id[R]
id[R]
is_user_created[R]

Public Class Methods

from(xml, category, id = nil) click to toggle source
# File lib/senkyoshi/models/outcome_definition.rb, line 23
def self.from(xml, category, id = nil)
  outcome_definition = OutcomeDefinition.new(category, id)
  outcome_definition.iterate_xml(xml)
end
new(category, id, content_id = nil, asidataid = nil) click to toggle source
# File lib/senkyoshi/models/outcome_definition.rb, line 28
def initialize(category, id, content_id = nil, asidataid = nil)
  @id = id
  @content_id = content_id
  @asidataid = asidataid
  @category = category
end
orphan?(outcome_def) click to toggle source

Determine if an outcome definition is user created and linked to any other 'CONTENT' or assignments

# File lib/senkyoshi/models/outcome_definition.rb, line 51
def self.orphan?(outcome_def)
  outcome_def.content_id.empty? &&
    outcome_def.asidataid.empty? &&
    outcome_def.is_user_created
end

Public Instance Methods

canvas_conversion(course, _ = nil) click to toggle source
# File lib/senkyoshi/models/outcome_definition.rb, line 57
def canvas_conversion(course, _ = nil)
  assignment_group = AssignmentGroup.find_or_create(course, @category)
  assignment = CanvasCc::CanvasCC::Models::Assignment.new
  assignment.identifier = @id
  assignment.assignment_group_identifier_ref = assignment_group.identifier
  assignment.title = @title
  assignment.position = 1
  assignment.points_possible = @points_possible
  assignment.workflow_state = "published"
  assignment.grading_type = "points"

  course.assignments << assignment
  course
end
iterate_xml(xml) click to toggle source
# File lib/senkyoshi/models/outcome_definition.rb, line 35
def iterate_xml(xml)
  @content_id = xml.xpath("./CONTENTID/@value").text
  @asidataid = xml.xpath("./ASIDATAID/@value").text
  @id = xml.xpath("./@id").text
  @title = xml.xpath("./TITLE/@value").text
  @points_possible = xml.xpath("./POINTSPOSSIBLE/@value").text
  @is_user_created = Senkyoshi.true?(
    xml.xpath("./ISUSERCREATED/@value").text,
  )
  self
end