Class: Exam::Pregunta
Overview
Clase Pregunta
Definición de la clase Pregunta que permite almacenar y representar una pregunta por pantalla, proporciona una interfaz de usuario y permite saber el nivel de la pregunta mediante una variable. Sus metodos son:
-
metodo <=>
-
metodo ==
-
metodo obtener_pregunta
-
metodo obtener_level
-
metodo obtener_respuestas
-
metodo obtener_correcta
-
metodo obtener_respuesta
-
metodo initiliaze
-
metodo to_s
Direct Known Subclasses
Instance Attribute Summary collapse
-
#answers ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta.
-
#level ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta.
-
#num_c ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta.
-
#title ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta.
Class Method Summary collapse
-
.obtener_correcta ⇒ Object
Metodo para saber dentro de la clase Pregunta cual de las respuestas es la correcta, mediante un indice que apunta a un array.
-
.obtener_level ⇒ Object
Metodo para obtener el nivel de la pregunta.
-
.obtener_pregunta ⇒ Object
Metodo para obtener el titulo de la pregunta mediante una introducción por pantalla.
-
.obtener_respuesta(num) ⇒ Object
Metodo para obtener una respuesta simple a una pregunta.
-
.obtener_respuestas ⇒ Object
Metodo para obtener las diferentes respuestas a la pregunta, manteniendo la suposición de que el numero de respuestas será el que nos proporcionen.
Instance Method Summary collapse
-
#<=>(anOther) ⇒ Object
Metodo para hacer uso del modulo Comparable comparando el nivel de dos preguntas.
-
#==(other) ⇒ Object
Metodo para comparar que una pregunta es igual a otra.
-
#initialize(title = obtener_pregunta, answers = obtener_respuestas, num_c = obtener_correcta, level = obtener_level) ⇒ Pregunta
constructor
Metodo para inicializar la clase.
-
#to_s ⇒ Object
Metodo para mostrar por pantalla la pregunta y las posibles respuestas.
Constructor Details
#initialize(title = obtener_pregunta, answers = obtener_respuestas, num_c = obtener_correcta, level = obtener_level) ⇒ Pregunta
Metodo para inicializar la clase
83 84 85 86 87 88 89 90 |
# File 'lib/exam.rb', line 83 def initialize(title = obtener_pregunta, answers = obtener_respuestas, num_c = obtener_correcta, level = obtener_level) raise ArgumentError, "Title has to be a String, got #{title.class}" unless title.is_a? String @title = title @answers = answers @num_c = num_c @level = level end |
Instance Attribute Details
#answers ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta
32 33 34 |
# File 'lib/exam.rb', line 32 def answers @answers end |
#level ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta
32 33 34 |
# File 'lib/exam.rb', line 32 def level @level end |
#num_c ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta
32 33 34 |
# File 'lib/exam.rb', line 32 def num_c @num_c end |
#title ⇒ Object
Atributo answers, para almacenar las respuestas de la pregunta Atributo title, para almacenar la respuesta en si Atributo num_c, numero de la respuesta correcta Atributo level, nivel de la pregunta
32 33 34 |
# File 'lib/exam.rb', line 32 def title @title end |
Class Method Details
.obtener_correcta ⇒ Object
Metodo para saber dentro de la clase Pregunta cual de las respuestas es la correcta, mediante un indice que apunta a un array
70 71 72 73 |
# File 'lib/exam.rb', line 70 def self.obtener_correcta puts "Introduzca el numero de la respuesta correcta" @num_c = gets.chomp.to_i end |
.obtener_level ⇒ Object
Metodo para obtener el nivel de la pregunta
52 53 54 55 |
# File 'lib/exam.rb', line 52 def self.obtener_level print "Introduzca nivel de dificultad de la pregunta, 0 minimo y 10 maximo" @level = gets.chomp.to_i end |
.obtener_pregunta ⇒ Object
Metodo para obtener el titulo de la pregunta mediante una introducción por pantalla
45 46 47 48 49 |
# File 'lib/exam.rb', line 45 def self.obtener_pregunta puts 'Introduzca la pregunta' title = gets.chomp return title end |
.obtener_respuesta(num) ⇒ Object
Metodo para obtener una respuesta simple a una pregunta
76 77 78 79 80 |
# File 'lib/exam.rb', line 76 def self.obtener_respuesta(num) puts "Introduzca la respuesta #{num}" ans = [gets.chomp] return ans end |
.obtener_respuestas ⇒ Object
Metodo para obtener las diferentes respuestas a la pregunta, manteniendo la suposición de que el numero de respuestas será el que nos proporcionen
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/exam.rb', line 58 def self.obtener_respuestas puts "Introduzca numero de respuestas a la pregunta" num = gets.chomp.to_i c = [] while num != 0 c = c + obtener_respuesta(c.length + 1) num -= 1 end @answers = c end |
Instance Method Details
#<=>(anOther) ⇒ Object
Metodo para hacer uso del modulo Comparable comparando el nivel de dos preguntas
35 36 37 |
# File 'lib/exam.rb', line 35 def <=> (anOther) @level <=> anOther.level end |
#==(other) ⇒ Object
Metodo para comparar que una pregunta es igual a otra
40 41 42 |
# File 'lib/exam.rb', line 40 def == (other) @level == other.level && @title == other.title end |
#to_s ⇒ Object
Metodo para mostrar por pantalla la pregunta y las posibles respuestas
93 94 95 96 97 98 99 100 101 |
# File 'lib/exam.rb', line 93 def to_s out = "# #{@title}" + "\n" i = 1 answers.each do |a| out << " #{i}.- #{a}\n" i += 1 end out end |