class QuizDSL
quiz_dsl.rb¶ ↑
- Autor
-
Dailos Sabina Rodriguez
- Autor
-
Raul Perez Hernandez
Clase QuizDSL
¶ ↑
Definicion de la clase Quiz
que permite representar un examen por pantalla mediante los siguientes metodos y tambien comprobar el resultado del examen, para ello hemos definido la clase como DSL
-
metodo initialize
-
metodo question
-
metodo right
-
metodo wrong
Public Class Methods
new(name = "") { || ... }
click to toggle source
Metodo para inicializar la clase
# File lib/quiz_dsl.rb, line 22 def initialize(name = "", &block) @aciertos = 0 @name = name @questions = List.new @wr = 0 if block_given? if block.arity == 1 yield else instance_eval &block end end end
Public Instance Methods
question(title, answers = {})
click to toggle source
Metodo para cargar una pregunta haciendo uso de DSL
# File lib/quiz_dsl.rb, line 38 def question(title, answers = {}) resp = [] a = 0 num_c = 0 correcta = answers[:right] if answers[:right] answers.map do |key,r| resp << r num_c = a if r == correcta a += 1 end @questions.ins_final(Exam::Pregunta.new(title, resp, num_c, 0)) end
right()
click to toggle source
Metodo para cargar la respuesta correcta
# File lib/quiz_dsl.rb, line 52 def right :right end
wrong()
click to toggle source
Metodo para cargar la/s respuesta/s errĂ³nea/s
# File lib/quiz_dsl.rb, line 57 def wrong @wr += 1 ("wr"+@wr.to_s).intern end