Class: Exner::Respuesta

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/exner/respuesta.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(test, definicion = false) ⇒ Respuesta

Returns a new instance of Respuesta.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/exner/respuesta.rb', line 7

def initialize(test,definicion=false)
	@test=test
	@loc= @dq = nil
	@determinantes = Array.new
	@contenidos= Array.new
	@ccee=Array.new
	@z= 0
	if (definicion)
		from_s(definicion)
	end
end

Instance Attribute Details

#cceeObject

Returns the value of attribute ccee.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def ccee
  @ccee
end

#contenidosObject

Returns the value of attribute contenidos.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def contenidos
  @contenidos
end

#determinantesObject

Returns the value of attribute determinantes.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def determinantes
  @determinantes
end

#dqObject

Returns the value of attribute dq.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def dq
  @dq
end

#fqObject

Returns the value of attribute fq.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def fq
  @fq
end

#laminaObject

Returns the value of attribute lamina.



5
6
7
# File 'lib/exner/respuesta.rb', line 5

def lamina
  @lamina
end

#localizacionObject

Returns the value of attribute localizacion.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def localizacion
  @localizacion
end

#parObject

Returns the value of attribute par.



5
6
7
# File 'lib/exner/respuesta.rb', line 5

def par
  @par
end

Returns the value of attribute popular.



5
6
7
# File 'lib/exner/respuesta.rb', line 5

def popular
  @popular
end

#respuestaObject

Returns the value of attribute respuesta.



5
6
7
# File 'lib/exner/respuesta.rb', line 5

def respuesta
  @respuesta
end

#zObject

Returns the value of attribute z.



6
7
8
# File 'lib/exner/respuesta.rb', line 6

def z
  @z
end

Instance Method Details

#<=>(resp) ⇒ Object



106
107
108
# File 'lib/exner/respuesta.rb', line 106

def <=>(resp)
	@respuesta<=>resp.respuesta
end

#es_compleja?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/exner/respuesta.rb', line 48

def es_compleja?
	return @determinantes.size>1
end

#from_s(t) ⇒ Object

Procesa una cadena de texto con una tabulación



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/exner/respuesta.rb', line 20

def from_s(t)
  raise "Error en linea "+t  unless t=~/^s*
	([I|V|X]{1,4})\s+ #1 Lamina
	(\d{1,3})\s+ #2 Respuesta
	([WSDd]+) #3 Localizacion
	(\+|o|v|v\/\+)\s+ #4 Dq
	([^\s|\+|o|u|-]+) #5 Determinante
	(\+|o|u|-|sin)\s+ #6 Fq
	(\(2\))?\s* #7 par
	(\S+)\s* #8 contenidos
	(P)*\s* #9 popular
	(\d\.\d|[abcd])?\s* #10 Z
	(\S+)?\s* #11 fenómenos especiales
	$/x
	raise "no dq" if $4.nil?
	raise "no contenido" if $8.nil?
	@lamina= Exner.de_romano($1)
	@respuesta= $2.to_i
	self.localizacion= $3
	self.dq= $4
	self.determinantes= $5
	self.fq= $6
	self.par= ($7=='(2)')
	self.contenidos= $8
	self.popular = ($9 =='P')
	self.z=$10
	self.ccee=$11
end

#localizacion_puraObject



55
56
57
# File 'lib/exner/respuesta.rb', line 55

def localizacion_pura
	@localizacion.gsub("S","")
end

#tiene_movimiento_humano?Boolean

Returns:

  • (Boolean)


58
59
60
61
# File 'lib/exner/respuesta.rb', line 58

def tiene_movimiento_humano?
	a=@determinantes.detect {|c| c=='Mp' or c=='Ma'}
	!a.nil?
end

#to_sObject



103
104
105
# File 'lib/exner/respuesta.rb', line 103

def to_s
	Exner.a_romano(@lamina)+" "+@respuesta.to_s+" "+@localizacion+@dq+" "+@determinantes.join('.')+@fq+" "+(@par ? "(2) " : " ")+@contenidos.join(',')+" "+(@popular ? "P " :" ")+@z.to_s+" "+@ccee.join(',')
end