Class: Einutricional::MenuDietetico

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/einutricional/menu_dietetico.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dia_semana, &block) ⇒ MenuDietetico

Returns a new instance of MenuDietetico.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/einutricional/menu_dietetico.rb', line 6

def initialize(dia_semana, &block)
  @dia_semana = dia_semana
  @des = Array.new
  @alm = Array.new
  @cen = Array.new
  if block_given?
    if block.arity == 1
      yield self
    else
      instance_eval(&block)
    end
  end
end

Instance Attribute Details

#alimentosObject

Returns the value of attribute alimentos.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def alimentos
  @alimentos
end

#almObject

Returns the value of attribute alm.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def alm
  @alm
end

#cenObject

Returns the value of attribute cen.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def cen
  @cen
end

#desObject

Returns the value of attribute des.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def des
  @des
end

#dia_semanaObject

Returns the value of attribute dia_semana.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def dia_semana
  @dia_semana
end

#ingesta_maxObject

Returns the value of attribute ingesta_max.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def ingesta_max
  @ingesta_max
end

#ingesta_minObject

Returns the value of attribute ingesta_min.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def ingesta_min
  @ingesta_min
end

#titObject

Returns the value of attribute tit.



4
5
6
# File 'lib/einutricional/menu_dietetico.rb', line 4

def tit
  @tit
end

Instance Method Details

#<=>(other) ⇒ Object



56
57
58
# File 'lib/einutricional/menu_dietetico.rb', line 56

def <=>(other)
  valor_energetico_menu <=> other.valor_energetico_menu
end

#almuerzo(alm) ⇒ Object



34
35
36
37
# File 'lib/einutricional/menu_dietetico.rb', line 34

def almuerzo(alm)
  alm[:ve] = valor_energetico(alm)
  @alm << alm
end

#cena(cen) ⇒ Object



39
40
41
42
# File 'lib/einutricional/menu_dietetico.rb', line 39

def cena(cen)
  cen[:ve] = valor_energetico(cen)
  @cen << cen
end

#desayuno(des) ⇒ Object



29
30
31
32
# File 'lib/einutricional/menu_dietetico.rb', line 29

def desayuno(des)
  des[:ve] = valor_energetico(des)
  @des << des
end

#ingesta(datos) ⇒ Object



24
25
26
27
# File 'lib/einutricional/menu_dietetico.rb', line 24

def ingesta(datos)
  @ingesta_min = datos[:min]
  @ingesta_max = datos[:max]
end

#titulo(t) ⇒ Object



20
21
22
# File 'lib/einutricional/menu_dietetico.rb', line 20

def titulo(t)
  @tit = t
end

#to_sObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/einutricional/menu_dietetico.rb', line 60

def to_s
  # Barra superior de información
  print @tit.upcase.ljust(55), "COMPOSICIÓN NUTRICIONAL\n"
  print ' ' * 35,
        'Grasas'.ljust(9),
        'Hidratos'.ljust(11),
        'Proteínas'.ljust(12),
        'Fibra'.ljust(8),
        'Sal'.ljust(6),
        'Valor energético', "\n"
  puts '=' * 97
  ve = 0
  # Datos
  [@des, @alm, @cen].each do |momento_del_dia|
    unless momento_del_dia.empty?
      if momento_del_dia == @des
        puts '>> DESAYUNO'
      elsif momento_del_dia == @alm
        puts '>> ALMUERZO'
      else
        puts '>> CENA'
      end
    end

    momento_del_dia.each do |menu|
      ve += menu[:ve]
      print menu[:descripcion].ljust(35),
            menu[:grasas].to_s.ljust(9),
            menu[:hidratos].to_s.ljust(11),
            menu[:proteinas].to_s.ljust(12),
            menu[:fibra].to_s.ljust(8),
            menu[:sal].to_s.ljust(6),
            menu[:ve].round(0).to_s
      print "\n"
    end
  end
  puts '=' * 97
  print 'Total   '.rjust(81), ve
end

#valor_energetico(hash) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/einutricional/menu_dietetico.rb', line 44

def valor_energetico(hash)
  ve = 0
  ve += hash[:grasas] * 9
  ve += (hash[:hidratos] - hash[:azucares] - hash[:polialcoholes] - hash[:almidon]) * 4
  ve += hash[:azucares] * 4
  ve += hash[:polialcoholes] * 2.4
  ve += hash[:almidon] * 4
  ve += hash[:fibra] * 2
  ve += hash[:proteinas] * 4
  ve += hash[:sal] * 6
end