Method: FoodAbstract#initialize

Defined in:
lib/food/food_class.rb

#initialize(name, protein_energy_pair, glucid_energy_pair, lipid_energy_pair) ⇒ FoodAbstract

Constructor of Abstract Food for allowing the childs to call it.

Parameters:

  • name (String)

    the name for the food.

  • protein_energy_pair (pair)

    pair of protein number and energy.

  • glucid_energy_pair (pair)

    pair of glucid number and energy

  • lipid_energy_pair (pair)

    pair of lipid number and energy

  • lipid_energy_pair (pair)

    pair of lipid number and energy



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/food/food_class.rb', line 25

def initialize (name, protein_energy_pair, glucid_energy_pair, lipid_energy_pair)
  raise unless name.is_a? String
  raise unless ((protein_energy_pair.is_a? Array) && (glucid_energy_pair.is_a? Array) && (lipid_energy_pair.is_a? Array))
  raise unless ((protein_energy_pair.count == 2) && (glucid_energy_pair.count == 2) && (lipid_energy_pair.count == 2))

  protein_energy_pair.each { |element| raise unless element.is_a?(Integer) || element.is_a?(Float) }
  glucid_energy_pair.each { |element| raise unless element.is_a?(Integer) || element.is_a?(Float) }
  lipid_energy_pair.each { |element| raise unless element.is_a?(Integer) || element.is_a?(Float) }
  
  @name = name.capitalize
  @protein_quantity = protein_energy_pair[0]
  @glucid_quantity = glucid_energy_pair[0]
  @lipid_quantity = lipid_energy_pair[0]
  
  # Vector de pares, pues hash no permite iguales
  @pair_macronutrient_energy = []
  @pair_macronutrient_energy.push([protein_energy_pair[0], protein_energy_pair[1]])
  @pair_macronutrient_energy.push([glucid_energy_pair[0], glucid_energy_pair[1]])
  @pair_macronutrient_energy.push([lipid_energy_pair[0], lipid_energy_pair[1]])
  
  @energetic_content = calculate_energetic_content.round(3)
end