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