Class: Alimento

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/practica/practica6.rb

Overview

La clase Alimento se usar para la definicion de los diferentes alimentos y sus propiedades

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, proteinas, carbohidratos, lipidos, gei, terreno) ⇒ Alimento

Constructor que recibe como parametros el nombre,proteinas,carbohidratos,lipidos, gei y terreno del alimento



5
6
7
8
9
10
11
12
13
# File 'lib/practica/practica6.rb', line 5

def initialize(nombre,proteinas,carbohidratos,lipidos,gei,terreno)   # Constructor que recibe como parametros el nombre,proteinas,carbohidratos,lipidos, gei y terreno del alimento
	
	@nombre=nombre.to_s
	@proteinas=proteinas.to_f
	@carbohidratos=carbohidratos.to_f
	@lipidos=lipidos.to_f
	@gei=gei.to_f
	@terreno=terreno.to_f
end

Instance Attribute Details

#carbohidratosObject (readonly)

Returns the value of attribute carbohidratos.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def carbohidratos
  @carbohidratos
end

#geiObject (readonly)

Returns the value of attribute gei.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def gei
  @gei
end

#lipidosObject (readonly)

Returns the value of attribute lipidos.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def lipidos
  @lipidos
end

#nombreObject (readonly)

Returns the value of attribute nombre.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def nombre
  @nombre
end

#proteinasObject (readonly)

Returns the value of attribute proteinas.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def proteinas
  @proteinas
end

#terrenoObject (readonly)

Returns the value of attribute terreno.



3
4
5
# File 'lib/practica/practica6.rb', line 3

def terreno
  @terreno
end

Instance Method Details

#<=>(other) ⇒ Object

Operador <=> en funcion del valor energetico



47
48
49
50
# File 'lib/practica/practica6.rb', line 47

def <=> (other)		# Operador <=> en funcion del valor energetico
	return nil unless other.instance_of? Alimento     # retornamos nil en caso de que el objeto a comparar no sea una instancia de Alimento
	get_valE <=> other.get_valE
end

#==(other) ⇒ Object

Operador de comparacion



36
37
38
39
40
41
42
43
44
45
# File 'lib/practica/practica6.rb', line 36

def == (other)		# Operador de comparacion
	if other.instance_of? Alimento # verificamos que el otro objeto sea una instancia de Alimento 
			
	@nombre == other.nombre && @proteinas == other.proteinas && @carbohidratos==other.carbohidratos && @lipidos==other.lipidos &&  @gei==other.gei && @terreno==other.terreno
	#retornamos true si todos y cada uno de los atributos son iguales
	elsif  #retornamos false en caso de que al menos uno sea diferente
		
		false	
	end
end

#get_alimentoObject

Metodo que devuelve el objeto en formato vector



29
30
31
32
# File 'lib/practica/practica6.rb', line 29

def get_alimento	# Metodo que devuelve el objeto en formato vector
	comida = [@proteinas,@carbohidratos,@lipidos,@gei,@terreno]
	return comida
end

#get_GEIObject

Getter del atrito @gei



19
20
21
# File 'lib/practica/practica6.rb', line 19

def get_GEI	    # Getter del atrito @gei
	return @gei
end

#get_nameObject

Getter del atributo @nombre



15
16
17
# File 'lib/practica/practica6.rb', line 15

def get_name	# Getter del atributo @nombre
  return @nombre
end

#get_terrenoObject

Getter del atributo @terreno



23
24
25
# File 'lib/practica/practica6.rb', line 23

def get_terreno	# Getter del atributo @terreno
	return @terreno
end

#get_valEObject

Metodo que devuelve el equivalente energetico del aliemnto (kcal)



33
34
35
# File 'lib/practica/practica6.rb', line 33

def get_valE		# Metodo que devuelve el equivalente energetico del aliemnto (kcal)
	return(@proteinas*4 + @carbohidratos*9 + @lipidos*4).round(2)
end

#to_sObject

Metodo que devuelve el objeto formateado en string



26
27
28
# File 'lib/practica/practica6.rb', line 26

def to_s		# Metodo que devuelve el objeto formateado en string
	return "#{@nombre},#{@proteinas},#{@carbohidratos},#{@lipidos},#{@gei},#{@terreno}"
end