Class: Alimentos
Overview
Esta clase permite representar alimentos con sus distintos macronutrientres. Su desarrollo ha sido dirigido por pruebas (TDD). Se han incluido el mixin Comparable
- Author
-
Sergio Ferrera de Diego (sergioferrera1296@gmail.com)
- Copyright
-
Cretive Commons
- License
-
Distributes under the same terms as Ruby
Direct Known Subclasses
Instance Attribute Summary collapse
-
#alimento ⇒ Object
readonly
Returns the value of attribute alimento.
-
#g ⇒ Object
Returns the value of attribute g.
-
#glucidos ⇒ Object
readonly
Returns the value of attribute glucidos.
-
#grasas ⇒ Object
readonly
Returns the value of attribute grasas.
-
#proteinas ⇒ Object
readonly
Returns the value of attribute proteinas.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Método para definir la forma en la que comparar instancias de la clase.
- #==(other) ⇒ Object
-
#AIBC ⇒ Object
Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o glucosa, dependiendo de que se le pase por parametro.
-
#initialize(alimento, proteinas, glucidos, grasas) ⇒ Alimentos
constructor
Método para asignar los datos del alimento.
-
#to_s ⇒ Object
Método para definir la forma en la que mostrar los datos del alimento.
-
#valor_ener ⇒ Object
Método para calcular el valor energetico del alimento.
Constructor Details
#initialize(alimento, proteinas, glucidos, grasas) ⇒ Alimentos
Método para asignar los datos del alimento
33 34 35 36 37 38 |
# File 'lib/prct06/alimentos.rb', line 33 def initialize(alimento,proteinas,glucidos,grasas) @alimento = alimento @proteinas = proteinas @glucidos = glucidos @grasas = grasas end |
Instance Attribute Details
#alimento ⇒ Object (readonly)
Returns the value of attribute alimento
14 15 16 |
# File 'lib/prct06/alimentos.rb', line 14 def alimento @alimento end |
#g ⇒ Object
Returns the value of attribute g
16 17 18 |
# File 'lib/prct06/alimentos.rb', line 16 def g @g end |
#glucidos ⇒ Object (readonly)
Returns the value of attribute glucidos
14 15 16 |
# File 'lib/prct06/alimentos.rb', line 14 def glucidos @glucidos end |
#grasas ⇒ Object (readonly)
Returns the value of attribute grasas
14 15 16 |
# File 'lib/prct06/alimentos.rb', line 14 def grasas @grasas end |
#proteinas ⇒ Object (readonly)
Returns the value of attribute proteinas
14 15 16 |
# File 'lib/prct06/alimentos.rb', line 14 def proteinas @proteinas end |
Instance Method Details
#<=>(other) ⇒ Object
Método para definir la forma en la que comparar instancias de la clase
19 20 21 |
# File 'lib/prct06/alimentos.rb', line 19 def <=>(other) valor_ener <=> other.valor_ener end |
#==(other) ⇒ Object
23 24 25 |
# File 'lib/prct06/alimentos.rb', line 23 def == (other) alimento == other.alimento end |
#AIBC ⇒ Object
Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o glucosa, dependiendo de que se le pase por parametro
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/prct06/alimentos.rb', line 53 def AIBC aibc=Array.new g.each do |x| almacen=Array.new vec_2=(1..x.length-1).to_a.zip(x.drop(1)) vec_2.each{ |val| almacen<<(((val[1]-x[0]+x[val[0]-1]-x[0])/2)*5).round(2)} aibc<<(almacen.reduce :+) end aibc end |
#to_s ⇒ Object
Método para definir la forma en la que mostrar los datos del alimento
41 42 43 |
# File 'lib/prct06/alimentos.rb', line 41 def to_s "(#{@alimento}, #{@proteinas}, #{@glucidos}, #{@grasas})" end |
#valor_ener ⇒ Object
Método para calcular el valor energetico del alimento
46 47 48 |
# File 'lib/prct06/alimentos.rb', line 46 def valor_ener (@glucidos*4) + (@grasas*9) + (@proteinas*4) end |