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

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