Class: Respanol::Examen::NumeroExamen

Inherits:
ExamenBase
  • Object
show all
Defined in:
lib/respanol/examenes/numero_examen.rb

Constant Summary collapse

MAXIMO =
100

Constants inherited from ExamenBase

ExamenBase::GAZA_CONDE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from ExamenBase

#decir_que_no, emparejar?, #emparejar?, #ensayar, #felicitar, #gaza, gaza, #optener, #pedir

Methods included from Impresion

included

Constructor Details

#initialize(feminino = false) ⇒ NumeroExamen

Returns a new instance of NumeroExamen.



9
10
11
# File 'lib/respanol/examenes/numero_examen.rb', line 9

def initialize(feminino = false)
  @klase = feminino ? FemininoNumero : Numero
end

Instance Attribute Details

#klaseObject

Returns the value of attribute klase.



4
5
6
# File 'lib/respanol/examenes/numero_examen.rb', line 4

def klase
  @klase
end

#maximoObject



24
25
26
# File 'lib/respanol/examenes/numero_examen.rb', line 24

def maximo
  @maximo || MAXIMO
end

Instance Method Details

#escribir(rango = (1...MAXIMO)) ⇒ Object



35
36
37
38
39
40
# File 'lib/respanol/examenes/numero_examen.rb', line 35

def escribir(rango = (1...MAXIMO))
  num = rand(rango)
  ensayar("#{num} = ") do |s|
    s.gsub(/\s+/, ' ').strip == @klase.numero_en_palabras(num)
  end
end

#femininoObject



13
14
15
16
17
# File 'lib/respanol/examenes/numero_examen.rb', line 13

def feminino
  dup = self.dup
  dup.klase = FemininoNumero
  dup
end

#feminino!Object



19
20
21
22
# File 'lib/respanol/examenes/numero_examen.rb', line 19

def feminino!
  self.klase = FemininoNumero
  self
end

#leer(rango = (1...maximo)) ⇒ Object



28
29
30
31
32
33
# File 'lib/respanol/examenes/numero_examen.rb', line 28

def leer(rango = (1...maximo))
  num = rand(rango)
  ensayar("#{@klase.numero_en_palabras(num)} = ") do |v|
    v.to_i == num
  end
end