class Pregunta

Clase gestora de una Pregunta de multiples opciones.

Attributes

difficulty[RW]
distractors[RW]
right[RW]
text[RW]

Public Class Methods

new(args) click to toggle source

Instancia una nueva Pregunta, a partir de un texto, una respuesta correcta, un conjunto de respuestas falsas y opcionalmente la dificultad.

# File lib/examen/pregunta.rb, line 7
def initialize(args)
  raise ArgumentError, "Esperada pregunta (:text)" unless args[:text]
  raise ArgumentError, "Esperada respuesta correcta (:right)" unless args[:right]
  raise ArgumentError, "Esperadas respuestas incorrectas (:distractors)" unless args[:distractors]
  @text = args[:text]
  @right = args[:right]
  @distractors = args[:distractors]
  @difficulty = (args.key?:difficulty)?args[:difficulty]:1
end

Public Instance Methods

<=>(p) click to toggle source

Sobrecarga el operador <=> para comparar por dificultad.

# File lib/examen/pregunta.rb, line 30
def <=>(p)
  @difficulty <=> p.difficulty
end
==(p) click to toggle source

Sobrecarga el operador == para comparar por el texto.

# File lib/examen/pregunta.rb, line 34
def ==(p)
  @text.eql?p.text
end
to_s() click to toggle source

Definición del Metodo #to_s para mostrar una pregunta.

# File lib/examen/pregunta.rb, line 17
def to_s
  opciones = @distractors + [@right]
  opciones = opciones.shuffle     
  s = "#{@text}\n"
  letras = ('a'..'z').to_a[0..(opciones.size - 1)]
  i = 0
  opciones.each do |o|
   s += "#{letras[i]}) #{o}\n"
   i += 1
  end
  s
end