Class: Pregunta
Overview
Clase gestora de una Pregunta de multiples opciones.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#difficulty ⇒ Object
Returns the value of attribute difficulty.
-
#distractors ⇒ Object
Returns the value of attribute distractors.
-
#right ⇒ Object
Returns the value of attribute right.
-
#text ⇒ Object
Returns the value of attribute text.
Instance Method Summary collapse
-
#<=>(p) ⇒ Object
Sobrecarga el operador <=> para comparar por dificultad.
-
#==(p) ⇒ Object
Sobrecarga el operador == para comparar por el texto.
-
#initialize(args) ⇒ Pregunta
constructor
Instancia una nueva Pregunta, a partir de un texto, una respuesta correcta, un conjunto de respuestas falsas y opcionalmente la dificultad.
-
#to_s ⇒ Object
DefiniciĆ³n del Metodo to_s para mostrar una pregunta.
Constructor Details
#initialize(args) ⇒ Pregunta
Instancia una nueva Pregunta, a partir de un texto, una respuesta correcta, un conjunto de respuestas falsas y opcionalmente la dificultad.
8 9 10 11 12 13 14 15 16 |
# File 'lib/examen/pregunta.rb', line 8 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 |
Instance Attribute Details
#difficulty ⇒ Object
Returns the value of attribute difficulty.
4 5 6 |
# File 'lib/examen/pregunta.rb', line 4 def difficulty @difficulty end |
#distractors ⇒ Object
Returns the value of attribute distractors.
4 5 6 |
# File 'lib/examen/pregunta.rb', line 4 def distractors @distractors end |
#right ⇒ Object
Returns the value of attribute right.
4 5 6 |
# File 'lib/examen/pregunta.rb', line 4 def right @right end |
#text ⇒ Object
Returns the value of attribute text.
4 5 6 |
# File 'lib/examen/pregunta.rb', line 4 def text @text end |
Instance Method Details
#<=>(p) ⇒ Object
Sobrecarga el operador <=> para comparar por dificultad.
31 32 33 |
# File 'lib/examen/pregunta.rb', line 31 def <=>(p) @difficulty <=> p.difficulty end |
#==(p) ⇒ Object
Sobrecarga el operador == para comparar por el texto.
35 36 37 |
# File 'lib/examen/pregunta.rb', line 35 def ==(p) @text.eql?p.text end |
#to_s ⇒ Object
DefiniciĆ³n del Metodo to_s para mostrar una pregunta.
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/examen/pregunta.rb', line 18 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 |