Class: Alimentos

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/prct06/alimentos.rb

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

G_alimentos

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(alimento, proteinas, glucidos, grasas) ⇒ Alimentos

Método para asignar los datos del alimento

Parameters:

  • alimento

    nombre del alimento

  • proteinas

    cantidad de proteinas del alimento

  • glucidos

    cantidad de glucidos del alimento

  • grasas

    cantidad de grasas 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

#alimentoObject (readonly)

Returns the value of attribute alimento



14
15
16
# File 'lib/prct06/alimentos.rb', line 14

def alimento
  @alimento
end

#gObject

Returns the value of attribute g



16
17
18
# File 'lib/prct06/alimentos.rb', line 16

def g
  @g
end

#glucidosObject (readonly)

Returns the value of attribute glucidos



14
15
16
# File 'lib/prct06/alimentos.rb', line 14

def glucidos
  @glucidos
end

#grasasObject (readonly)

Returns the value of attribute grasas



14
15
16
# File 'lib/prct06/alimentos.rb', line 14

def grasas
  @grasas
end

#proteinasObject (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

#AIBCObject

Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o glucosa, dependiendo de que se le pase por parametro

Parameters:

  • mediciones

    vector que contiene mediciones de glucosa o de un alimento



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_sObject

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_enerObject

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