nutrientes0100830200 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +9 -0
- data/.rspec +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/Guardfile +82 -0
- data/README.md +35 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Lista/Lista/Node.html +410 -0
- data/docs/Lista/Lista.html +863 -0
- data/docs/Lista.html +126 -0
- data/docs/Nutrientes/AliCarbo.html +233 -0
- data/docs/Nutrientes/AliGrasos.html +233 -0
- data/docs/Nutrientes/Carnes.html +235 -0
- data/docs/Nutrientes/Frutas.html +233 -0
- data/docs/Nutrientes/Lacteos.html +233 -0
- data/docs/Nutrientes/Mariscos.html +235 -0
- data/docs/Nutrientes/Nutrientes.html +739 -0
- data/docs/Nutrientes/Verduras.html +233 -0
- data/docs/Nutrientes.html +138 -0
- data/docs/_index.html +230 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file.README.html +116 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +116 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +267 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/nutrientes/source.rb +393 -0
- data/lib/nutrientes/version.rb +3 -0
- data/lib/nutrientes.rb +6 -0
- data/nutrientes.gemspec +40 -0
- metadata +196 -0
| @@ -0,0 +1,393 @@ | |
| 1 | 
            +
            # encoding utf-8
         | 
| 2 | 
            +
            # Author:: Kristian Martínez García (mailto:alu0100830200@ull.edu.es)
         | 
| 3 | 
            +
            # Copyright:: Creative Commons
         | 
| 4 | 
            +
            # License:: Distributes under the same term as Ruby
         | 
| 5 | 
            +
            # Asignatura: Lenguajes y paradigmas de la programación
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            # Modulo Nutrientes que incluye clases y sus metodos. 
         | 
| 8 | 
            +
            module Nutrientes
         | 
| 9 | 
            +
                # Clase Nutriente con atributos de nombre, proteina, glucidos y lipidos
         | 
| 10 | 
            +
                class Nutrientes
         | 
| 11 | 
            +
                    # Incluyendo modulo Comparable
         | 
| 12 | 
            +
                    include Comparable
         | 
| 13 | 
            +
                    # Incluyendo modulo Enumerable
         | 
| 14 | 
            +
                    include Enumerable
         | 
| 15 | 
            +
                    # Atributos de la Clase Nutrientes accesibles con cualquier metodo de la clase.
         | 
| 16 | 
            +
                    attr_reader :nombre, :proteina, :glucidos, :lipidos, :vec_aibc, :vec_ali
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                    # Método initialize para definir el objeto con los atributos
         | 
| 19 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 20 | 
            +
                        @nombre = nombre
         | 
| 21 | 
            +
                        @proteina = proteina
         | 
| 22 | 
            +
                        @glucidos = glucidos
         | 
| 23 | 
            +
                        @lipidos = lipidos
         | 
| 24 | 
            +
                        @vec_aibc = vec
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    # Método para mostrar el flujo de salida formateda
         | 
| 28 | 
            +
                    def to_s
         | 
| 29 | 
            +
                        "[#{@nombre},Proteinas=#{@proteina}, Glúcidos=#{@glucidos}, Lípidos=#{@lipidos}]:"
         | 
| 30 | 
            +
                    end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    #Método para calcular el área incremental bajo la curva
         | 
| 33 | 
            +
                    def aibc
         | 
| 34 | 
            +
                        vec_aux = []
         | 
| 35 | 
            +
                        @vec_aibc.each do |value|
         | 
| 36 | 
            +
                            s=[]
         | 
| 37 | 
            +
                            value.each_with_index do |val,j|
         | 
| 38 | 
            +
                                if(j!=0)
         | 
| 39 | 
            +
                                    s << (((val-value[0])+ (value[j-1]-value[0]))*5)/2
         | 
| 40 | 
            +
                                end
         | 
| 41 | 
            +
                            end
         | 
| 42 | 
            +
                            vec_aux << s.reduce(:+)
         | 
| 43 | 
            +
                        end
         | 
| 44 | 
            +
                        vec_aux
         | 
| 45 | 
            +
                    end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                    #Método para calcular el índice glucémico del alimento
         | 
| 48 | 
            +
                    def indGlAli(glucosa)
         | 
| 49 | 
            +
                        indGlAli = []
         | 
| 50 | 
            +
                        @vec_aibc.each_with_index do |value,j| 
         | 
| 51 | 
            +
                            indGlAli << indGlInd(j,glucosa)
         | 
| 52 | 
            +
                        end
         | 
| 53 | 
            +
                        (indGlAli.reduce(:+))/@vec_aibc.size
         | 
| 54 | 
            +
                    end 
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                    #Método para calcular el índice glucémico de la persona
         | 
| 57 | 
            +
                    def indGlInd(individuo,glucosa)
         | 
| 58 | 
            +
                        ind_gluc = self.aibc[individuo]*100/glucosa.aibc[individuo]
         | 
| 59 | 
            +
                    end
         | 
| 60 | 
            +
                    # Método para obtener el valor energético de cada alimento
         | 
| 61 | 
            +
                    def valorEnergetico
         | 
| 62 | 
            +
                        valor = @proteina*4 + @glucidos*4 + @lipidos*9
         | 
| 63 | 
            +
                    end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    # Sobrecarga de operadores <=> para el funcionamiento del Módulo Comparable
         | 
| 66 | 
            +
                    def <=>(anOther)
         | 
| 67 | 
            +
                        valorEnergetico <=> anOther.valorEnergetico
         | 
| 68 | 
            +
                    end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                # Clase lacteos heredada de Nutrientes
         | 
| 73 | 
            +
                class Lacteos < Nutrientes
         | 
| 74 | 
            +
                    # Método initialize para definir un objeto Lacteos con los atributos
         | 
| 75 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 76 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 77 | 
            +
                    end
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                # Clase Carnes heredada de Nutrientes
         | 
| 81 | 
            +
                class Carnes < Nutrientes
         | 
| 82 | 
            +
                    # Método initialize para definir un objeto Carnes con los atributos apropiados
         | 
| 83 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 84 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 85 | 
            +
                    end 
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                # Clase Mariscos heredada de Nutrientes
         | 
| 89 | 
            +
                class Mariscos < Nutrientes
         | 
| 90 | 
            +
                    # Método initialize para definir un objeto Marisco con los atributos apropiados
         | 
| 91 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 92 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 93 | 
            +
                    end
         | 
| 94 | 
            +
                end
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                # Clase AliGrasos heredada de Nutrientes
         | 
| 97 | 
            +
                class AliGrasos < Nutrientes
         | 
| 98 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 99 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 100 | 
            +
                    end
         | 
| 101 | 
            +
                end
         | 
| 102 | 
            +
             | 
| 103 | 
            +
                 # Clase AliCarbo heredada de Nutrientes
         | 
| 104 | 
            +
                class AliCarbo < Nutrientes
         | 
| 105 | 
            +
                    # Método initialize para definir un objeto Verdura con los atributos
         | 
| 106 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 107 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 108 | 
            +
                    end 
         | 
| 109 | 
            +
                end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                # Clase Verduras heredada de Nutrientes
         | 
| 112 | 
            +
                class Verduras < Nutrientes
         | 
| 113 | 
            +
                    #Método initialize para definir un objeto Verdura con los atributos
         | 
| 114 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 115 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 116 | 
            +
                    end
         | 
| 117 | 
            +
                end
         | 
| 118 | 
            +
             | 
| 119 | 
            +
                # Clase Frutas heredada de Nutrientes
         | 
| 120 | 
            +
                class Frutas < Nutrientes
         | 
| 121 | 
            +
                    # Método initialize para definir un objeto Fruta con los atributos
         | 
| 122 | 
            +
                    def initialize(nombre,proteina,glucidos,lipidos,vec)
         | 
| 123 | 
            +
                        super(nombre,proteina,glucidos,lipidos,vec)
         | 
| 124 | 
            +
                    end
         | 
| 125 | 
            +
                end 
         | 
| 126 | 
            +
            end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            # Modulo Lista que incluye clases y sus metodos.
         | 
| 129 | 
            +
            module Lista
         | 
| 130 | 
            +
                # Clase lista con una cabeza, cola y un nodo con valores que se enlazan unos con otros 
         | 
| 131 | 
            +
                class Lista
         | 
| 132 | 
            +
                    # Atributos de la Clase Nutrientes accesibles con cualquier metodo de la clase.
         | 
| 133 | 
            +
                    attr_reader :tail, :head
         | 
| 134 | 
            +
                    # Incluimos el Módulo Comparable.
         | 
| 135 | 
            +
                    include Enumerable       
         | 
| 136 | 
            +
                    
         | 
| 137 | 
            +
                    # Estructura de datos Node, con un valor y un enlace para su siguiente y otro para su anterior.
         | 
| 138 | 
            +
                    Node = Struct.new(:prev, :value, :next)
         | 
| 139 | 
            +
                            
         | 
| 140 | 
            +
                    # Método initialize para definir un objeto Lista con los atributos
         | 
| 141 | 
            +
                    def initialize
         | 
| 142 | 
            +
                        @head = nil
         | 
| 143 | 
            +
                        @tail = nil
         | 
| 144 | 
            +
                    end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                    # Método empty para saber si la lista esta vacia.
         | 
| 147 | 
            +
                    def empty
         | 
| 148 | 
            +
                        if(@head == nil)
         | 
| 149 | 
            +
                            true
         | 
| 150 | 
            +
                        else
         | 
| 151 | 
            +
                            false
         | 
| 152 | 
            +
                        end
         | 
| 153 | 
            +
                    end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                    # Método each para poder utilizar otros métodos que contiene el modulo Enumerable
         | 
| 156 | 
            +
                    def each
         | 
| 157 | 
            +
                        aux = @head
         | 
| 158 | 
            +
                        while (aux != nil)
         | 
| 159 | 
            +
                            yield aux.value
         | 
| 160 | 
            +
                            aux = aux.next
         | 
| 161 | 
            +
                        end
         | 
| 162 | 
            +
                    end
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                    # Método push_node para introducir un valor en la lista
         | 
| 165 | 
            +
                    def push_node(value)
         | 
| 166 | 
            +
                        if(empty)
         | 
| 167 | 
            +
                            aux = Node.new(nil,value,nil)                
         | 
| 168 | 
            +
                            @tail = aux
         | 
| 169 | 
            +
                            @head = aux
         | 
| 170 | 
            +
                            return @tail.value
         | 
| 171 | 
            +
                        else
         | 
| 172 | 
            +
                           aux = Node.new(tail,value,nil)                                
         | 
| 173 | 
            +
                           @tail.next = aux
         | 
| 174 | 
            +
                           aux.prev = @tail
         | 
| 175 | 
            +
                           @tail = aux
         | 
| 176 | 
            +
                           return @tail.value
         | 
| 177 | 
            +
                        end
         | 
| 178 | 
            +
                    end
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                    # Método pop_front para sacar por delante un valor en la lista
         | 
| 181 | 
            +
                    def pop_front
         | 
| 182 | 
            +
                        aux = @head
         | 
| 183 | 
            +
                        val = @head.value
         | 
| 184 | 
            +
                        @head = @head.next
         | 
| 185 | 
            +
                        @head.prev = nil
         | 
| 186 | 
            +
                        aux.next = nil
         | 
| 187 | 
            +
                        aux.prev = nil
         | 
| 188 | 
            +
                        return val   
         | 
| 189 | 
            +
                    end
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                    # Método pop_back para sacar por atrás un valor en la lista
         | 
| 192 | 
            +
                    def pop_back
         | 
| 193 | 
            +
                        aux = @tail
         | 
| 194 | 
            +
                        val = @tail.value
         | 
| 195 | 
            +
                        @tail = @tail.prev
         | 
| 196 | 
            +
                        @tail.next = nil
         | 
| 197 | 
            +
                        aux.next = nil
         | 
| 198 | 
            +
                        aux.prev = nil
         | 
| 199 | 
            +
                        return val
         | 
| 200 | 
            +
                    end
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                    #Metodo para ordenar con EACH
         | 
| 203 | 
            +
                    def each1
         | 
| 204 | 
            +
                        aux = @head
         | 
| 205 | 
            +
                        vec = []
         | 
| 206 | 
            +
                        
         | 
| 207 | 
            +
                        while (aux != nil)
         | 
| 208 | 
            +
                            vec << aux.value
         | 
| 209 | 
            +
                            aux = aux.next
         | 
| 210 | 
            +
                        end
         | 
| 211 | 
            +
             | 
| 212 | 
            +
                            vec.each.with_index(1) do |val,i|
         | 
| 213 | 
            +
                                if(i < vec.size-1)
         | 
| 214 | 
            +
                                    vec.each.with_index(0) do |n,j|
         | 
| 215 | 
            +
                                        if(j < vec.size-i)
         | 
| 216 | 
            +
                                            if(vec[j] > vec[j+1])
         | 
| 217 | 
            +
                                                k=vec[j+1]
         | 
| 218 | 
            +
                                                vec[j+1]=vec[j]
         | 
| 219 | 
            +
                                                vec[j]=k
         | 
| 220 | 
            +
                                            end
         | 
| 221 | 
            +
                                        end
         | 
| 222 | 
            +
                                    end
         | 
| 223 | 
            +
                                end
         | 
| 224 | 
            +
                            end
         | 
| 225 | 
            +
                        vec
         | 
| 226 | 
            +
                    end
         | 
| 227 | 
            +
             | 
| 228 | 
            +
                    #Metodo for para ordenar
         | 
| 229 | 
            +
                    def for
         | 
| 230 | 
            +
                        aux = @head
         | 
| 231 | 
            +
                        vec = []
         | 
| 232 | 
            +
                        
         | 
| 233 | 
            +
                        while (aux != nil)
         | 
| 234 | 
            +
                            vec << aux.value
         | 
| 235 | 
            +
                            aux = aux.next
         | 
| 236 | 
            +
                        end
         | 
| 237 | 
            +
             | 
| 238 | 
            +
                        for i in 1..vec.size-1
         | 
| 239 | 
            +
                            for j in 0..vec.size-i-1
         | 
| 240 | 
            +
                                if(vec[j] > vec[j+1])
         | 
| 241 | 
            +
                                    k=vec[j+1]
         | 
| 242 | 
            +
                                     vec[j+1]=vec[j]
         | 
| 243 | 
            +
                                     vec[j]=k
         | 
| 244 | 
            +
                                end
         | 
| 245 | 
            +
                            end
         | 
| 246 | 
            +
                        end
         | 
| 247 | 
            +
                        vec 
         | 
| 248 | 
            +
                    end
         | 
| 249 | 
            +
             | 
| 250 | 
            +
                    # Método para mostrar el flujo de salida formateda
         | 
| 251 | 
            +
                    def to_s
         | 
| 252 | 
            +
                        aux = @head
         | 
| 253 | 
            +
                        cadena = ""
         | 
| 254 | 
            +
                        while (aux != nil)
         | 
| 255 | 
            +
                            cadena += "#{aux.value}"
         | 
| 256 | 
            +
                            aux = aux.next
         | 
| 257 | 
            +
                        end
         | 
| 258 | 
            +
                        cadena
         | 
| 259 | 
            +
                    end
         | 
| 260 | 
            +
                end
         | 
| 261 | 
            +
            end
         | 
| 262 | 
            +
             | 
| 263 | 
            +
            # Modulo Plato que incluye clases y sus metodos.
         | 
| 264 | 
            +
            module Plato
         | 
| 265 | 
            +
                # Clase Plato que contine la información del alimento al igual que sus ingredientes 
         | 
| 266 | 
            +
                class Plato
         | 
| 267 | 
            +
                    # Atributos de la Clase Plato accesibles desde el exterior de la clase.
         | 
| 268 | 
            +
                    attr_accessor :name, :ingredientes
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                    # Método initialize para definir un objeto Plato con los atributos (Bloque)
         | 
| 271 | 
            +
                    def initialize(name, &block)
         | 
| 272 | 
            +
                        @name = name
         | 
| 273 | 
            +
                        @vec_vegetales = []
         | 
| 274 | 
            +
                        @vec_fruta = []
         | 
| 275 | 
            +
                        @vec_cereal = []
         | 
| 276 | 
            +
                        @vec_proteina = []
         | 
| 277 | 
            +
                        @vec_aceite = []
         | 
| 278 | 
            +
                        @vec_ingredientes = []
         | 
| 279 | 
            +
             | 
| 280 | 
            +
                        @lista_alimentos = { 
         | 
| 281 | 
            +
                
         | 
| 282 | 
            +
                            "huevo" => Nutrientes::Nutrientes.new("Huevofri",14.1,0.0,19.5,0),
         | 
| 283 | 
            +
                            "leche" => Nutrientes::Nutrientes.new("Leche vaca",3.3,4.8,3.2,0),
         | 
| 284 | 
            +
                            "yogurt" => Nutrientes::Nutrientes.new("Yogurt",3.8,4.9,3.8,0),
         | 
| 285 | 
            +
                            "cerdo" => Nutrientes::Nutrientes.new("Cerdo",21.5,0.0,6.3,0),
         | 
| 286 | 
            +
                            "ternera" => Nutrientes::Nutrientes.new("Ternera",21.1,0.0,3.1,0),
         | 
| 287 | 
            +
                            "pollo" => Nutrientes::Nutrientes.new("Pollo",20.6,0.0,5.6,0),
         | 
| 288 | 
            +
                            "bacalao" => Nutrientes::Nutrientes.new("Bacalao",17.7,0.0,0.4,0),
         | 
| 289 | 
            +
                            "atun" => Nutrientes::Nutrientes.new("Atún",21.5,0.0,15.5,0),
         | 
| 290 | 
            +
                            "salmon" => Nutrientes::Nutrientes.new("Salmón",19.9,0.0,13.6,0),
         | 
| 291 | 
            +
                            "aceite" => Nutrientes::Nutrientes.new("Aceite Oliva",0.0,0.2,99.6,0),
         | 
| 292 | 
            +
                            "chocolate" => Nutrientes::Nutrientes.new("Chocolate",5.3,47.0,30.0,0),
         | 
| 293 | 
            +
                            "azucar" => Nutrientes::Nutrientes.new("Azúcar",0.0,99.8,0.0,0),
         | 
| 294 | 
            +
                            "arroz" => Nutrientes::Nutrientes.new("Arroz",6.8,77.7,0.6,0),
         | 
| 295 | 
            +
                            "lentejas" => Nutrientes::Nutrientes.new("Lentejas",23.5,52.0,1.4,0),
         | 
| 296 | 
            +
                            "papas" => Nutrientes::Nutrientes.new("Papas",2.0,15.4,0.1,0),
         | 
| 297 | 
            +
                            "tomate" => Nutrientes::Nutrientes.new("Tomate",1.0,3.5,0.2,0),
         | 
| 298 | 
            +
                            "cebolla" => Nutrientes::Nutrientes.new("Cebolla",1.3,5.8,0.3,0),
         | 
| 299 | 
            +
                            "manzana" => Nutrientes::Nutrientes.new("Manzana",0.3,12.4,0.4,0),
         | 
| 300 | 
            +
                            "platano" => Nutrientes::Nutrientes.new("Plátanos",1.2,21.4,0.2,0),
         | 
| 301 | 
            +
                            "calabaza" => Nutrientes::Nutrientes.new("Calabaza",1.1,4.8,0.1,0)
         | 
| 302 | 
            +
                        }
         | 
| 303 | 
            +
             | 
| 304 | 
            +
                        if block_given?  
         | 
| 305 | 
            +
                            if block.arity == 1
         | 
| 306 | 
            +
                              yield self
         | 
| 307 | 
            +
                            else
         | 
| 308 | 
            +
                             instance_eval(&block) 
         | 
| 309 | 
            +
                            end
         | 
| 310 | 
            +
                          end
         | 
| 311 | 
            +
                        end
         | 
| 312 | 
            +
             | 
| 313 | 
            +
                        def vegetal(name, options = {})
         | 
| 314 | 
            +
                            ingredient = @lista_alimentos[name.downcase]
         | 
| 315 | 
            +
                            amount = options[:porcion]
         | 
| 316 | 
            +
                            amount = amount.split(/\W+/)
         | 
| 317 | 
            +
                            amount[0] = amount[0].to_i                
         | 
| 318 | 
            +
                            aux = [ingredient,amount]
         | 
| 319 | 
            +
                            @vec_vegetales << aux
         | 
| 320 | 
            +
                        end
         | 
| 321 | 
            +
             | 
| 322 | 
            +
                        def fruta(name, options = {})
         | 
| 323 | 
            +
                            ingredient = @lista_alimentos[name.downcase]
         | 
| 324 | 
            +
                            amount = options[:porcion]
         | 
| 325 | 
            +
                            amount = amount.split(/\W+/)
         | 
| 326 | 
            +
                            amount[0] = amount[0].to_i                
         | 
| 327 | 
            +
                            aux = [ingredient,amount]
         | 
| 328 | 
            +
                            @vec_fruta << aux
         | 
| 329 | 
            +
                        end
         | 
| 330 | 
            +
             | 
| 331 | 
            +
                        def cereal(name, options = {})
         | 
| 332 | 
            +
                            ingredient = @lista_alimentos[name.downcase]
         | 
| 333 | 
            +
                            amount = options[:porcion]
         | 
| 334 | 
            +
                            amount = amount.split(/\W+/)
         | 
| 335 | 
            +
                            amount[0] = amount[0].to_i                
         | 
| 336 | 
            +
                            aux = [ingredient,amount]
         | 
| 337 | 
            +
                            @vec_cereal << aux
         | 
| 338 | 
            +
                        end
         | 
| 339 | 
            +
             | 
| 340 | 
            +
                        def proteina(name, options = {})
         | 
| 341 | 
            +
                            ingredient = @lista_alimentos[name.downcase]
         | 
| 342 | 
            +
                            amount = options[:porcion]
         | 
| 343 | 
            +
                            amount = amount.split(/\W+/)
         | 
| 344 | 
            +
                            amount[0] = amount[0].to_i                
         | 
| 345 | 
            +
                            aux = [ingredient,amount]
         | 
| 346 | 
            +
                            @vec_proteina << aux
         | 
| 347 | 
            +
                        end
         | 
| 348 | 
            +
             | 
| 349 | 
            +
                        def aceite(name, options = {})
         | 
| 350 | 
            +
                            ingredient = @lista_alimentos[name.downcase]
         | 
| 351 | 
            +
                            amount = options[:porcion]
         | 
| 352 | 
            +
                            amount = amount.split(/\W+/)
         | 
| 353 | 
            +
                            amount[0] = amount[0].to_i
         | 
| 354 | 
            +
                            aux = [ingredient,amount]  
         | 
| 355 | 
            +
                            @vec_aceite << aux          
         | 
| 356 | 
            +
                        end
         | 
| 357 | 
            +
                        
         | 
| 358 | 
            +
                        def to_s
         | 
| 359 | 
            +
                            medidas = { "gramos" => 0.02, "tazas" => 1, "piezas" => 2, "cucharon" => 1, "cucharada" => 1}
         | 
| 360 | 
            +
                            sum = 0
         | 
| 361 | 
            +
                            output = @name
         | 
| 362 | 
            +
                            output << "\n#{'=' * @name.size}\n\n"
         | 
| 363 | 
            +
                            output << "Composición nutricional: \n"
         | 
| 364 | 
            +
                            output << "             Glúcidos     Proteínas     Lípidos     Valor Energético\n"
         | 
| 365 | 
            +
                            @vec_vegetales.each do |i| 
         | 
| 366 | 
            +
                               output << i[0].nombre << "       " << i[0].glucidos.to_s << "          " << i[0].proteina.to_s << "           " << i[0].lipidos.to_s << "         " << (i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]).to_s << "\n"
         | 
| 367 | 
            +
                               sum += i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]
         | 
| 368 | 
            +
                            end
         | 
| 369 | 
            +
                            @vec_fruta.each do |i| 
         | 
| 370 | 
            +
                                output << i[0].nombre << "     " << i[0].glucidos.to_s << "         " << i[0].proteina.to_s << "           " << i[0].lipidos.to_s << "         " << (i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]).to_s << "\n"
         | 
| 371 | 
            +
                                sum += i[0].valorEnergetico**medidas[i[1][1]]*i[1][0]
         | 
| 372 | 
            +
                            end
         | 
| 373 | 
            +
                            @vec_cereal.each do |i| 
         | 
| 374 | 
            +
                               output << i[0].nombre << "        " << i[0].glucidos.to_s << "         " << i[0].proteina.to_s << "           " << i[0].lipidos.to_s << "         " << (i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]).to_s << "\n"
         | 
| 375 | 
            +
                               sum += i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]
         | 
| 376 | 
            +
                            end
         | 
| 377 | 
            +
                            @vec_proteina.each do |i| 
         | 
| 378 | 
            +
                                output << i[0].nombre << "     " << i[0].glucidos.to_s << "        " << i[0].proteina.to_s << "           " << i[0].lipidos.to_s << "         " << (i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]).to_s << "\n"     
         | 
| 379 | 
            +
                                sum += i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]    
         | 
| 380 | 
            +
                            end
         | 
| 381 | 
            +
                            @vec_aceite.each do |i| 
         | 
| 382 | 
            +
                                output << i[0].nombre << "   " << i[0].glucidos.to_s << "       " << i[0].proteina.to_s << "            " << i[0].lipidos.to_s << "        " << (i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]).to_s << "\n"
         | 
| 383 | 
            +
                                sum += i[0].valorEnergetico*medidas[i[1][1]]*i[1][0]
         | 
| 384 | 
            +
                            end
         | 
| 385 | 
            +
                            output << "Valor energético total                              " << sum.to_s
         | 
| 386 | 
            +
                
         | 
| 387 | 
            +
                            output
         | 
| 388 | 
            +
                        
         | 
| 389 | 
            +
                        end
         | 
| 390 | 
            +
                
         | 
| 391 | 
            +
                    end
         | 
| 392 | 
            +
                
         | 
| 393 | 
            +
                end
         | 
    
        data/lib/nutrientes.rb
    ADDED
    
    
    
        data/nutrientes.gemspec
    ADDED
    
    | @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            lib = File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require "nutrientes/version"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |spec|
         | 
| 7 | 
            +
              spec.name          = "nutrientes0100830200"
         | 
| 8 | 
            +
              spec.version       = Nutrientes::VERSION
         | 
| 9 | 
            +
              spec.authors       = ["Kristian Martinez"]
         | 
| 10 | 
            +
              spec.email         = ["alu0100830200@ull.edu.es"]
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              spec.summary       = %q{Práctica 6: Valor calórico de macronutrientes y micronutrientes}
         | 
| 13 | 
            +
              spec.homepage      = "https://github.com/ULL-ESIT-LPP-1718/tdd-alu0100830200.git"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
         | 
| 16 | 
            +
              # to allow pushing to a single host or delete this section to allow pushing to any host.
         | 
| 17 | 
            +
              if spec.respond_to?(:metadata)
         | 
| 18 | 
            +
                spec.metadata["allowed_push_host"] = "https://rubygems.org"
         | 
| 19 | 
            +
              else
         | 
| 20 | 
            +
                raise "RubyGems 2.0 or newer is required to protect against " \
         | 
| 21 | 
            +
                  "public gem pushes."
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              spec.files         = `git ls-files -z`.split("\x0").reject do |f|
         | 
| 25 | 
            +
                f.match(%r{^(test|spec|features)/})
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              spec.bindir        = "exe"
         | 
| 28 | 
            +
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 29 | 
            +
              spec.require_paths = ["lib"]
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              spec.add_development_dependency "bundler"
         | 
| 32 | 
            +
              spec.add_development_dependency "rake"
         | 
| 33 | 
            +
              spec.add_development_dependency "rspec"
         | 
| 34 | 
            +
              spec.add_development_dependency "guard"
         | 
| 35 | 
            +
              spec.add_development_dependency "guard-rspec"
         | 
| 36 | 
            +
              spec.add_development_dependency "guard-bundler"
         | 
| 37 | 
            +
              spec.add_development_dependency "yard"
         | 
| 38 | 
            +
              spec.add_development_dependency "coveralls"
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,196 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: nutrientes0100830200
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Kristian Martinez
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: exe
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2017-12-13 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: bundler
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rake
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: rspec
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: guard
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ">="
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: guard-rspec
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - ">="
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '0'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ">="
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: guard-bundler
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - ">="
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - ">="
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: yard
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - ">="
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '0'
         | 
| 104 | 
            +
              type: :development
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - ">="
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '0'
         | 
| 111 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            +
              name: coveralls
         | 
| 113 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            +
                requirements:
         | 
| 115 | 
            +
                - - ">="
         | 
| 116 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            +
                    version: '0'
         | 
| 118 | 
            +
              type: :development
         | 
| 119 | 
            +
              prerelease: false
         | 
| 120 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            +
                requirements:
         | 
| 122 | 
            +
                - - ">="
         | 
| 123 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            +
                    version: '0'
         | 
| 125 | 
            +
            description: 
         | 
| 126 | 
            +
            email:
         | 
| 127 | 
            +
            - alu0100830200@ull.edu.es
         | 
| 128 | 
            +
            executables: []
         | 
| 129 | 
            +
            extensions: []
         | 
| 130 | 
            +
            extra_rdoc_files: []
         | 
| 131 | 
            +
            files:
         | 
| 132 | 
            +
            - ".coveralls.yml"
         | 
| 133 | 
            +
            - ".gitignore"
         | 
| 134 | 
            +
            - ".rspec"
         | 
| 135 | 
            +
            - ".travis.yml"
         | 
| 136 | 
            +
            - Gemfile
         | 
| 137 | 
            +
            - Guardfile
         | 
| 138 | 
            +
            - README.md
         | 
| 139 | 
            +
            - Rakefile
         | 
| 140 | 
            +
            - bin/console
         | 
| 141 | 
            +
            - bin/setup
         | 
| 142 | 
            +
            - docs/Lista.html
         | 
| 143 | 
            +
            - docs/Lista/Lista.html
         | 
| 144 | 
            +
            - docs/Lista/Lista/Node.html
         | 
| 145 | 
            +
            - docs/Nutrientes.html
         | 
| 146 | 
            +
            - docs/Nutrientes/AliCarbo.html
         | 
| 147 | 
            +
            - docs/Nutrientes/AliGrasos.html
         | 
| 148 | 
            +
            - docs/Nutrientes/Carnes.html
         | 
| 149 | 
            +
            - docs/Nutrientes/Frutas.html
         | 
| 150 | 
            +
            - docs/Nutrientes/Lacteos.html
         | 
| 151 | 
            +
            - docs/Nutrientes/Mariscos.html
         | 
| 152 | 
            +
            - docs/Nutrientes/Nutrientes.html
         | 
| 153 | 
            +
            - docs/Nutrientes/Verduras.html
         | 
| 154 | 
            +
            - docs/_index.html
         | 
| 155 | 
            +
            - docs/class_list.html
         | 
| 156 | 
            +
            - docs/css/common.css
         | 
| 157 | 
            +
            - docs/css/full_list.css
         | 
| 158 | 
            +
            - docs/css/style.css
         | 
| 159 | 
            +
            - docs/file.README.html
         | 
| 160 | 
            +
            - docs/file_list.html
         | 
| 161 | 
            +
            - docs/frames.html
         | 
| 162 | 
            +
            - docs/index.html
         | 
| 163 | 
            +
            - docs/js/app.js
         | 
| 164 | 
            +
            - docs/js/full_list.js
         | 
| 165 | 
            +
            - docs/js/jquery.js
         | 
| 166 | 
            +
            - docs/method_list.html
         | 
| 167 | 
            +
            - docs/top-level-namespace.html
         | 
| 168 | 
            +
            - lib/nutrientes.rb
         | 
| 169 | 
            +
            - lib/nutrientes/source.rb
         | 
| 170 | 
            +
            - lib/nutrientes/version.rb
         | 
| 171 | 
            +
            - nutrientes.gemspec
         | 
| 172 | 
            +
            homepage: https://github.com/ULL-ESIT-LPP-1718/tdd-alu0100830200.git
         | 
| 173 | 
            +
            licenses: []
         | 
| 174 | 
            +
            metadata:
         | 
| 175 | 
            +
              allowed_push_host: https://rubygems.org
         | 
| 176 | 
            +
            post_install_message: 
         | 
| 177 | 
            +
            rdoc_options: []
         | 
| 178 | 
            +
            require_paths:
         | 
| 179 | 
            +
            - lib
         | 
| 180 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 181 | 
            +
              requirements:
         | 
| 182 | 
            +
              - - ">="
         | 
| 183 | 
            +
                - !ruby/object:Gem::Version
         | 
| 184 | 
            +
                  version: '0'
         | 
| 185 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 186 | 
            +
              requirements:
         | 
| 187 | 
            +
              - - ">="
         | 
| 188 | 
            +
                - !ruby/object:Gem::Version
         | 
| 189 | 
            +
                  version: '0'
         | 
| 190 | 
            +
            requirements: []
         | 
| 191 | 
            +
            rubyforge_project: 
         | 
| 192 | 
            +
            rubygems_version: 2.6.13
         | 
| 193 | 
            +
            signing_key: 
         | 
| 194 | 
            +
            specification_version: 4
         | 
| 195 | 
            +
            summary: 'Práctica 6: Valor calórico de macronutrientes y micronutrientes'
         | 
| 196 | 
            +
            test_files: []
         |