class OpenAssessment

Attributes

allow_file_upload[RW]
allow_latex[RW]
answer[RW]
criterions[RW]
graded_by[RW]
must_grade[RW]
name[RW]
peer_review[RW]
peer_review_due[RW]
peer_review_due_time[RW]
peer_review_start[RW]
peer_review_start_time[RW]
prompts[RW]
question_feedback_default_text[RW]
question_feedback_prompt[RW]
question_scoring_guideline[RW]
question_title[RW]
self_assessment[RW]
self_assessment_due[RW]
self_assessment_due_time[RW]
self_assessment_start[RW]
self_assessment_start_time[RW]
submission_due[RW]
submission_due_time[RW]
submission_start[RW]
submission_start_time[RW]
trainings[RW]
url_name[RW]
yaml[RW]

Public Class Methods

new(options={}, yaml={}) click to toggle source

Initializes the open assessment question

# File lib/ruql/open_assessment/open_assessment.rb, line 31
def initialize(options={}, yaml={})
  @peer_review = options[:peer_review] || false
  @self_assessment = options[:self_assessment]
  @self_assessment = true if @self_assessment.nil?

  @prompts = []
  @criterions = []
  @trainings = []

  @url_name = options[:url_name] || SecureRandom.hex
  @yaml = yaml

  @must_grade = @yaml["must_grade"] || 5
  @graded_by = @yaml["graded_by"] || 3

  @allow_file_upload = options[:allow_file_upload] || false
  @allow_latex = options[:allow_latex] || false

  # Parsing start/due dates
  start_date = @yaml["submission_start"] || Time.now.to_s
  end_date = @yaml["submission_due"] || (Time.now + 14).to_s

  peer_review_start = @yaml["peer_review_start"] || start_date
  peer_review_due = @yaml["peer_review_due"] || end_date

  self_assessment_start = @yaml["self_assessment_start"] || start_date
  self_assessment_due = @yaml["self_assessment_due"] || end_date

  @submission_start = Date.parse(start_date)
  @submission_due = Date.parse(end_date)
  @submission_start_time = @yaml["submission_start_time"] || "00:00"
  @submission_due_time = @yaml["submission_due_time"] || "00:00"

  @peer_review_start = Date.parse(peer_review_start)
  @peer_review_due = Date.parse(peer_review_due)
  @peer_review_start_time = @yaml["peer_review_start_time"] || "00:00"
  @peer_review_due_time = @yaml["peer_review_due_time"] || "00:00"

  @self_assessment_start = Date.parse(self_assessment_start)
  @self_assessment_due = Date.parse(self_assessment_due)
  @self_assessment_start_time = @yaml["self_assessment_start_time"] || "00:00"
  @self_assessment_due_time = @yaml["self_assessment_due_time"] || "00:00"

  # Default feedback settings
  @question_feedback_prompt = "Leave feedback"
  @question_feedback_default_text = "Let them know how they did"
end

Public Instance Methods

add_simple_question() click to toggle source

Adds fields for a simple_open_assessment question

# File lib/ruql/open_assessment/open_assessment.rb, line 116
def add_simple_question
  criterion = Criterion.new
  criterion.name("How'd you do?")
  criterion.label("Scoring Rubric")

  raise "Must have answer for question" if @question_answer.nil?
  criterion.prompt(@question_answer)

  criterions << criterion
  scoring_guidelines = @question_scoring_guideline || @@single_question_scores
  scoring_guidelines.each do |score_array|
    option = Option.new({ points: score_array[0] })
    option.add_params(score_array)
    criterion.add_option(option)
  end
end
criterion(*args, &block) click to toggle source

Adds a criterion and evaluates its proc block.

# File lib/ruql/open_assessment/open_assessment.rb, line 105
def criterion(*args, &block)
  criterion = Criterion.new(*args)
  criterion.instance_eval(&block)

  raise "Missing criterion parameters" if criterion.missing_parameters?

  @criterions << criterion
end
feedback_default_text(fb_text) click to toggle source

Sets the default text for the feedback textarea

# File lib/ruql/open_assessment/open_assessment.rb, line 101
def feedback_default_text(fb_text) ; @question_feedback_default_text = fb_text ; end
feedback_prompt(fb_prompt) click to toggle source

Sets the feedback prompt if you want students to leave feedback

# File lib/ruql/open_assessment/open_assessment.rb, line 97
def feedback_prompt(fb_prompt) ; @question_feedback_prompt = fb_prompt ; end
prompt(prompt) click to toggle source

Adds a prompt to the question - you must have at least one

# File lib/ruql/open_assessment/open_assessment.rb, line 85
def prompt(prompt)    ; @prompts << prompt        ; end
scoring_guideline(score_array) click to toggle source

Sets the scoring guidelines for a simple_open_assesment question

# File lib/ruql/open_assessment/open_assessment.rb, line 93
def scoring_guideline(score_array) ; @question_scoring_guideline = score_array ; end
student_training(*args, &block) click to toggle source

Adds a student training question - only used with peer review enabled questions

# File lib/ruql/open_assessment/open_assessment.rb, line 135
def student_training(*args, &block)
  return unless @peer_review
  training = Training.new(*args)
  training.instance_eval(&block)
  @trainings << training
end
title(title) click to toggle source

Sets the title of the question

# File lib/ruql/open_assessment/open_assessment.rb, line 81
def title(title)      ; @question_title  = title  ; end