Sha256: b8174a90f2b7d8da1829247a708ae0cc675dea92659240b45d488b06f832d281
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
module Alimento # Clase para representar un alimento class Comida attr_reader :nombre, :nutrientes, :impacto include Comparable # Variable de clase con los nombres de los nutrientes @@nombresNutrientes = ["Proteinas", "Carbohidratos", "Lipidos"] # Variable de clase con los nombres de impacto @@nombresImpacto = ["GEI", "Terreno"] # Permite acceder a la variable de clase # @return [Array] Devuelve el array con los nombres de nutrientes def self.nombres_nutrientes @@nombresNutrientes end # Permite acceder a la variable de clase # @return [Array] Devuelve el array con los nombres def self.nombres_impacto @@nombresImpacto end # Inicializa una comida # @param nombre [String] Nombre del alimento # @param nutrientes [Array] Contiene la información nutricional # @param impacto [Array] Contiene la informaci def initialize(nombre, nutrientes, impacto) @nombre = nombre @nutrientes = [@@nombresNutrientes, nutrientes].transpose.to_h @impacto = [@@nombresImpacto, impacto].transpose.to_h end # Obtiene el alimento concatenado # @return [String] Con formato: "Nombre: [Nutrientes..., Impacto...]" def to_s "#{@nombre}: ".concat(nutrientes.to_s, impacto.to_s) end # Permite comparar alimentos def <=>(other) valor_energetico <=> other.valor_energetico end # Obtiene el valor del impacto diario para una mujer # @return [Float] Impacto diario suponiendo cdr de 2300 def impacto_diario_mujer impacto_diario(2300) end # Obtiene el valor del impacto diario para una hombre # @return [Float] Impacto diario suponiendo cdr de 3000 def impacto_diario_hombre impacto_diario(3000) end # Obtiene el valor energético del alimento # @return [Float] Valor energetico def valor_energetico (@nutrientes["Carbohidratos"]*4 + @nutrientes["Lipidos"]*9 + @nutrientes["Proteinas"]*4).round(2) end private def impacto_diario(cdr) impacto.values.collect { |n| (n*(cdr/valor_energetico)).round(2) } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alimento-alu0101132907-0.1.0 | lib/alimento/alimento.rb |