Class: Menu_dsl

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, &block) ⇒ Menu_dsl

Returns a new instance of Menu_dsl.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/prct06/menu_dsl.rb', line 12

def initialize(name, &block)
  @titulo = name
  @ing_diaria = []
  @porcentajes = []
  @platos = []

  if block_given?  
    if block.arity == 1
      yield self
    else
     instance_eval(&block) 
    end
  end
end

Instance Attribute Details

#ing_diariaObject

Porcentaje de injesta diaria.



6
7
8
# File 'lib/prct06/menu_dsl.rb', line 6

def ing_diaria
  @ing_diaria
end

#platosObject

Platos que contiene la dieta.



8
9
10
# File 'lib/prct06/menu_dsl.rb', line 8

def platos
  @platos
end

#porcentajesObject

Calorias de la dieta.



10
11
12
# File 'lib/prct06/menu_dsl.rb', line 10

def porcentajes
  @porcentajes
end

#tituloObject

Titulo de la dieta.



4
5
6
# File 'lib/prct06/menu_dsl.rb', line 4

def titulo
  @titulo
end

Instance Method Details

#<=>(an0ther) ⇒ Object



68
69
70
# File 'lib/prct06/menu_dsl.rb', line 68

def <=>(an0ther)
  self.porcentajes[0] <=> an0ther.porcentajes[0]
end

#ingesta(ing = {}) ⇒ Object



42
43
44
45
46
47
# File 'lib/prct06/menu_dsl.rb', line 42

def ingesta(ing = {})
  i = []
  i << "#{ing[:min]}" if ing[:min]
  i << "#{ing[:max]}" if ing[:max]
  @ing_diaria = i
end

#plat(options = {}) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/prct06/menu_dsl.rb', line 59

def plat(options = {})
  pl = []
  pl << "#{options[:descripcion]}" if options[:descripcion]
  pl << "#{options[:porcion]}" if options[:porcion]
  pl << "#{options[:gramos]}" if options[:gramos]

  @platos << pl 
end

#porcent(porc = {}) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/prct06/menu_dsl.rb', line 49

def porcent(porc = {})
  p = []
  p << "#{porc[:vct]}" if porc[:vct]
  p << "#{porc[:proteinas]}" if porc[:proteinas]
  p << "#{porc[:grasas]}" if porc[:grasas]
  p << "#{porc[:hidratos]}" if porc[:hidratos] 

 @porcentajes = p
end

#to_sObject



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/prct06/menu_dsl.rb', line 28

def to_s
  output = @titulo
  output << "\n#{'=' * @titulo.size}\n"
  output << "\nMin: #{@ing_diaria[0]}\n"
  output << "Max: #{@ing_diaria[1]}\n\n"

  @platos.each_with_index do |plato, index|
    output << "#{index + 1}) #{plato[0]}. PorciĆ³n: #{plato[1]}. Cantidad: #{plato[2]}\n"
  end
  
  output << "V.C.T. | %\t#{@porcentajes[0]} kcal | #{@porcentajes[1]}% - #{@porcentajes[2]}% - #{@porcentajes[3]}%\n\n"
  output
end