alimentacion 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/.gitignore +12 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +95 -0
- data/Guardfile +82 -0
- data/README.md +9 -0
- data/Rakefile +6 -0
- data/alimentacion.gemspec +38 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Alimentacion.html +110 -0
- data/docs/Alimentacion/Error.html +103 -0
- data/docs/Alimentos.html +529 -0
- data/docs/Eficiencia_Energetica.html +484 -0
- data/docs/Gemfile.html +98 -0
- data/docs/Gemfile_lock.html +177 -0
- data/docs/Guardfile.html +165 -0
- data/docs/Lista.html +622 -0
- data/docs/Object.html +127 -0
- data/docs/Plato.html +504 -0
- data/docs/README_md.html +104 -0
- data/docs/Rakefile.html +100 -0
- data/docs/alimentacion_gemspec.html +132 -0
- data/docs/bin/setup.html +100 -0
- data/docs/created.rid +16 -0
- data/docs/css/fonts.css +167 -0
- data/docs/css/rdoc.css +590 -0
- data/docs/fonts/Lato-Light.ttf +0 -0
- data/docs/fonts/Lato-LightItalic.ttf +0 -0
- data/docs/fonts/Lato-Regular.ttf +0 -0
- data/docs/fonts/Lato-RegularItalic.ttf +0 -0
- data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
- data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
- data/docs/images/add.png +0 -0
- data/docs/images/arrow_up.png +0 -0
- data/docs/images/brick.png +0 -0
- data/docs/images/brick_link.png +0 -0
- data/docs/images/bug.png +0 -0
- data/docs/images/bullet_black.png +0 -0
- data/docs/images/bullet_toggle_minus.png +0 -0
- data/docs/images/bullet_toggle_plus.png +0 -0
- data/docs/images/date.png +0 -0
- data/docs/images/delete.png +0 -0
- data/docs/images/find.png +0 -0
- data/docs/images/loadingAnimation.gif +0 -0
- data/docs/images/macFFBgHack.png +0 -0
- data/docs/images/package.png +0 -0
- data/docs/images/page_green.png +0 -0
- data/docs/images/page_white_text.png +0 -0
- data/docs/images/page_white_width.png +0 -0
- data/docs/images/plugin.png +0 -0
- data/docs/images/ruby.png +0 -0
- data/docs/images/tag_blue.png +0 -0
- data/docs/images/tag_green.png +0 -0
- data/docs/images/transparent.png +0 -0
- data/docs/images/wrench.png +0 -0
- data/docs/images/wrench_orange.png +0 -0
- data/docs/images/zoom.png +0 -0
- data/docs/index.html +117 -0
- data/docs/js/darkfish.js +161 -0
- data/docs/js/jquery.js +4 -0
- data/docs/js/navigation.js +141 -0
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search.js +109 -0
- data/docs/js/search_index.js +1 -0
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js +229 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +293 -0
- data/lib/alimentacion.rb +11 -0
- data/lib/alimentacion/alimentos.rb +65 -0
- data/lib/alimentacion/lista.rb +136 -0
- data/lib/alimentacion/menu_dsl.rb +36 -0
- data/lib/alimentacion/plato_dsl.rb +45 -0
- data/lib/alimentacion/platos.rb +199 -0
- data/lib/alimentacion/version.rb +3 -0
- metadata +221 -0
Binary file
|
data/docs/js/search.js
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
Search = function(data, input, result) {
|
2
|
+
this.data = data;
|
3
|
+
this.$input = $(input);
|
4
|
+
this.$result = $(result);
|
5
|
+
|
6
|
+
this.$current = null;
|
7
|
+
this.$view = this.$result.parent();
|
8
|
+
this.searcher = new Searcher(data.index);
|
9
|
+
this.init();
|
10
|
+
}
|
11
|
+
|
12
|
+
Search.prototype = $.extend({}, Navigation, new function() {
|
13
|
+
var suid = 1;
|
14
|
+
|
15
|
+
this.init = function() {
|
16
|
+
var _this = this;
|
17
|
+
var observer = function(e) {
|
18
|
+
switch(e.originalEvent.keyCode) {
|
19
|
+
case 38: // Event.KEY_UP
|
20
|
+
case 40: // Event.KEY_DOWN
|
21
|
+
return;
|
22
|
+
}
|
23
|
+
_this.search(_this.$input[0].value);
|
24
|
+
};
|
25
|
+
this.$input.keyup(observer);
|
26
|
+
this.$input.click(observer); // mac's clear field
|
27
|
+
|
28
|
+
this.searcher.ready(function(results, isLast) {
|
29
|
+
_this.addResults(results, isLast);
|
30
|
+
})
|
31
|
+
|
32
|
+
this.initNavigation();
|
33
|
+
this.setNavigationActive(false);
|
34
|
+
}
|
35
|
+
|
36
|
+
this.search = function(value, selectFirstMatch) {
|
37
|
+
value = jQuery.trim(value).toLowerCase();
|
38
|
+
if (value) {
|
39
|
+
this.setNavigationActive(true);
|
40
|
+
} else {
|
41
|
+
this.setNavigationActive(false);
|
42
|
+
}
|
43
|
+
|
44
|
+
if (value == '') {
|
45
|
+
this.lastQuery = value;
|
46
|
+
this.$result.empty();
|
47
|
+
this.$result.attr('aria-expanded', 'false');
|
48
|
+
this.setNavigationActive(false);
|
49
|
+
} else if (value != this.lastQuery) {
|
50
|
+
this.lastQuery = value;
|
51
|
+
this.$result.attr('aria-busy', 'true');
|
52
|
+
this.$result.attr('aria-expanded', 'true');
|
53
|
+
this.firstRun = true;
|
54
|
+
this.searcher.find(value);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
this.addResults = function(results, isLast) {
|
59
|
+
var target = this.$result.get(0);
|
60
|
+
if (this.firstRun && (results.length > 0 || isLast)) {
|
61
|
+
this.$current = null;
|
62
|
+
this.$result.empty();
|
63
|
+
}
|
64
|
+
|
65
|
+
for (var i=0, l = results.length; i < l; i++) {
|
66
|
+
var item = this.renderItem.call(this, results[i]);
|
67
|
+
item.setAttribute('id', 'search-result-' + target.childElementCount);
|
68
|
+
target.appendChild(item);
|
69
|
+
};
|
70
|
+
|
71
|
+
if (this.firstRun && results.length > 0) {
|
72
|
+
this.firstRun = false;
|
73
|
+
this.$current = $(target.firstChild);
|
74
|
+
this.$current.addClass('search-selected');
|
75
|
+
}
|
76
|
+
if (jQuery.browser.msie) this.$element[0].className += '';
|
77
|
+
|
78
|
+
if (isLast) this.$result.attr('aria-busy', 'false');
|
79
|
+
}
|
80
|
+
|
81
|
+
this.move = function(isDown) {
|
82
|
+
if (!this.$current) return;
|
83
|
+
var $next = this.$current[isDown ? 'next' : 'prev']();
|
84
|
+
if ($next.length) {
|
85
|
+
this.$current.removeClass('search-selected');
|
86
|
+
$next.addClass('search-selected');
|
87
|
+
this.$input.attr('aria-activedescendant', $next.attr('id'));
|
88
|
+
this.scrollIntoView($next[0], this.$view[0]);
|
89
|
+
this.$current = $next;
|
90
|
+
this.$input.val($next[0].firstChild.firstChild.text);
|
91
|
+
this.$input.select();
|
92
|
+
}
|
93
|
+
return true;
|
94
|
+
}
|
95
|
+
|
96
|
+
this.hlt = function(html) {
|
97
|
+
return this.escapeHTML(html).
|
98
|
+
replace(/\u0001/g, '<em>').
|
99
|
+
replace(/\u0002/g, '</em>');
|
100
|
+
}
|
101
|
+
|
102
|
+
this.escapeHTML = function(html) {
|
103
|
+
return html.replace(/[&<>]/g, function(c) {
|
104
|
+
return '&#' + c.charCodeAt(0) + ';';
|
105
|
+
});
|
106
|
+
}
|
107
|
+
|
108
|
+
});
|
109
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
var search_data = {"index":{"searchIndex":["alimentacion","error","alimentos","eficiencia_energetica","lista","object","plato","<=>()","<=>()","<=>()","auxiliar()","auxiliar2()","dieta_gases_anuales()","dieta_gases_diarios()","dieta_terreno()","each()","emisiones_gases_anuales()","emisiones_gases_diarios()","extract_head()","extract_tail()","huella_nutricional()","impacto_hombre()","impacto_mujer()","imprimir()","insert()","insert_head()","insert_tail()","new()","new()","new()","new()","porcentaje_hidratos()","porcentaje_lipidos()","porcentaje_proteinas()","to_s()","to_s()","to_s()","uso_terreno()","valor_calorico()","valor_energetico()","gemfile","gemfile.lock","guardfile","readme","rakefile","alimentacion.gemspec","setup"],"longSearchIndex":["alimentacion","alimentacion::error","alimentos","eficiencia_energetica","lista","object","plato","alimentos#<=>()","eficiencia_energetica#<=>()","plato#<=>()","alimentos#auxiliar()","alimentos#auxiliar2()","lista#dieta_gases_anuales()","lista#dieta_gases_diarios()","lista#dieta_terreno()","lista#each()","eficiencia_energetica#emisiones_gases_anuales()","eficiencia_energetica#emisiones_gases_diarios()","lista#extract_head()","lista#extract_tail()","eficiencia_energetica#huella_nutricional()","alimentos#impacto_hombre()","alimentos#impacto_mujer()","lista#imprimir()","lista#insert()","lista#insert_head()","lista#insert_tail()","alimentos::new()","eficiencia_energetica::new()","lista::new()","plato::new()","plato#porcentaje_hidratos()","plato#porcentaje_lipidos()","plato#porcentaje_proteinas()","alimentos#to_s()","eficiencia_energetica#to_s()","plato#to_s()","eficiencia_energetica#uso_terreno()","plato#valor_calorico()","alimentos#valor_energetico()","","","","","","",""],"info":[["Alimentacion","","Alimentacion.html","",""],["Alimentacion::Error","","Alimentacion/Error.html","",""],["Alimentos","","Alimentos.html","","<p>Esta clase contiene información sobre alimentos, tales como las proteínas, lípidos, hidratos,etc. Se …\n"],["Eficiencia_Energetica","","Eficiencia_Energetica.html","","<p>encoding: utf-8 Esta clase, que hereda de la clase Plato, calculará las emisiones diarias y anuales de …\n"],["Lista","","Lista.html","",""],["Object","","Object.html","",""],["Plato","","Plato.html","","<p>Esta clase contiene información acerca de los distintos alimentos que forman un plato. Se calcula el …\n"],["<=>","Alimentos","Alimentos.html#method-i-3C-3D-3E","(anOther)","<p>Se utiliza el módulo Comparable, comparando los alimentos en base a sus proteínas.\n"],["<=>","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-3C-3D-3E","(anOther)","<p>Se utiliza el módulo Comparable, comparando los alimentos en base a su huella nutricional.\n"],["<=>","Plato","Plato.html#method-i-3C-3D-3E","(anOther)","<p>Se utiliza el módulo Comparable, comparando los alimentos en base a su porcentaje de proteínas.\n"],["auxiliar","Alimentos","Alimentos.html#method-i-auxiliar","(gramos)","<p>Función auxiliar para calcular los gases anuales.\n"],["auxiliar2","Alimentos","Alimentos.html#method-i-auxiliar2","(gramos)","<p>Función auxiliar para calcular el uso del terreno anual.\n"],["dieta_gases_anuales","Lista","Lista.html#method-i-dieta_gases_anuales","(gramos)","<p>Calcula el total de gases anuales que tiene la lista de alimentos\n"],["dieta_gases_diarios","Lista","Lista.html#method-i-dieta_gases_diarios","(gramos)","<p>Calcula el total de gases diarios que tiene la lista de alimentos\n"],["dieta_terreno","Lista","Lista.html#method-i-dieta_terreno","(gramos)","<p>Calcula el total de uso del terreno que tiene la lista de alimentos\n"],["each","Lista","Lista.html#method-i-each","()","<p>Se utiliza el módulo Enumerable, para enumerar cualquier lista enlazada.\n"],["emisiones_gases_anuales","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-emisiones_gases_anuales","()","<p>Se calculan las emisiones anuales de gases de efecto invernadero que produce el plato\n"],["emisiones_gases_diarios","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-emisiones_gases_diarios","()","<p>Se calculan las emisiones diarias de gases de efecto invernadero que produce el plato\n"],["extract_head","Lista","Lista.html#method-i-extract_head","()","<p>Se extrae el nodo situado en la cabeza de la lista\n"],["extract_tail","Lista","Lista.html#method-i-extract_tail","()","<p>Se extrae el nodo situado en la cola de la lista\n"],["huella_nutricional","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-huella_nutricional","()","<p>Se calcula la huella nutricional del plato\n"],["impacto_hombre","Alimentos","Alimentos.html#method-i-impacto_hombre","(gramos)","<p>Se calcula el impacto ambiental de un alimento en un hombre.\n"],["impacto_mujer","Alimentos","Alimentos.html#method-i-impacto_mujer","(gramos1,gramos2,gramos3,gramos4,gramos5)","<p>Se calcula el impacto ambiental de un alimento en una mujer.\n"],["imprimir","Lista","Lista.html#method-i-imprimir","()","<p>Se visualiza la lista\n"],["insert","Lista","Lista.html#method-i-insert","(nodos)","<p>Se insertan por la cola un conjunto de nodos\n"],["insert_head","Lista","Lista.html#method-i-insert_head","(value)","<p>Se inserta un nodo por la cabeza de la lista\n"],["insert_tail","Lista","Lista.html#method-i-insert_tail","(value)","<p>Se inserta un nodo por la cola de la lista\n"],["new","Alimentos","Alimentos.html#method-c-new","(nombre,proteinas,hidratos,lipidos,gei,terreno)","<p>Se asignan el nombre del alimento, sus proteínas, hidratos, lípidos, gases y uso del terreno.\n"],["new","Eficiencia_Energetica","Eficiencia_Energetica.html#method-c-new","(nombre_plato, lista_alimentos, lista_gramos)","<p>Se asignan el nombre del plato, la lista de alimentos que lo contienen y la lista de gramos de cada alimento. …\n"],["new","Lista","Lista.html#method-c-new","(head,tail)","<p>Se asignan la cabecera de la lista y la cola de la lista. Inicialmente apuntan a nil.\n"],["new","Plato","Plato.html#method-c-new","(nombre_plato, lista_alimentos, lista_gramos)","<p>Se asignan el nombre del plato, la lista de alimentos que lo compone y los gramos de cada alimento.\n"],["porcentaje_hidratos","Plato","Plato.html#method-i-porcentaje_hidratos","()","<p>Se calcula el porcentaje de hidratos de carbono total del plato\n"],["porcentaje_lipidos","Plato","Plato.html#method-i-porcentaje_lipidos","()","<p>Se calcula el porcentaje de lípidos total del plato\n"],["porcentaje_proteinas","Plato","Plato.html#method-i-porcentaje_proteinas","()","<p>Se calcula el porcentaje de proteínas total del plato\n"],["to_s","Alimentos","Alimentos.html#method-i-to_s","()","<p>Se obtiene el alimento formateado.\n"],["to_s","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-to_s","()","<p>Se obtiene la información de gases y terreno formateada\n"],["to_s","Plato","Plato.html#method-i-to_s","()","<p>Se obtiene el plato formateado\n"],["uso_terreno","Eficiencia_Energetica","Eficiencia_Energetica.html#method-i-uso_terreno","()","<p>Se calcula el uso del terreno anual que produce el plato\n"],["valor_calorico","Plato","Plato.html#method-i-valor_calorico","()","<p>Se calcula el valor calórico total del plato\n"],["valor_energetico","Alimentos","Alimentos.html#method-i-valor_energetico","()","<p>Se calcula el valor energético (calórico) del alimento.\n"],["Gemfile","","Gemfile.html","","<p>source “rubygems.org”\n<p># Specify your gem's dependencies in alimentacion.gemspec gemspec …\n"],["Gemfile.lock","","Gemfile_lock.html","","<p>PATH\n\n<pre>remote: .\nspecs:\n alimentacion (0.1.0)</pre>\n<p>GEM\n"],["Guardfile","","Guardfile.html","","<p># A sample Guardfile # More info at github.com/guard/guard#readme\n<p>## Uncomment and set this to only include …\n"],["README","","README_md.html","","<p>Práctica 9. Programación funcional. Funciones de orden superior.\n<p><strong>Autor</strong>: David Hernández Suárez\n<p><strong>Asignatura</strong> …\n"],["Rakefile","","Rakefile.html","","<p>require “bundler/gem_tasks” require “rspec/core/rake_task”\n<p>RSpec::Core::RakeTask.new …\n"],["alimentacion.gemspec","","alimentacion_gemspec.html","","<p>lib = File.expand_path(“lib”, __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) …\n"],["setup","","bin/setup.html","","<p>#!/usr/bin/env bash set -euo pipefail IFS=$'nt' set -vx\n<p>bundle install\n<p># Do any other automated …\n"]]}}
|
Binary file
|
data/docs/js/searcher.js
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
Searcher = function(data) {
|
2
|
+
this.data = data;
|
3
|
+
this.handlers = [];
|
4
|
+
}
|
5
|
+
|
6
|
+
Searcher.prototype = new function() {
|
7
|
+
// search is performed in chunks of 1000 for non-blocking user input
|
8
|
+
var CHUNK_SIZE = 1000;
|
9
|
+
// do not try to find more than 100 results
|
10
|
+
var MAX_RESULTS = 100;
|
11
|
+
var huid = 1;
|
12
|
+
var suid = 1;
|
13
|
+
var runs = 0;
|
14
|
+
|
15
|
+
this.find = function(query) {
|
16
|
+
var queries = splitQuery(query);
|
17
|
+
var regexps = buildRegexps(queries);
|
18
|
+
var highlighters = buildHilighters(queries);
|
19
|
+
var state = { from: 0, pass: 0, limit: MAX_RESULTS, n: suid++};
|
20
|
+
var _this = this;
|
21
|
+
|
22
|
+
this.currentSuid = state.n;
|
23
|
+
|
24
|
+
if (!query) return;
|
25
|
+
|
26
|
+
var run = function() {
|
27
|
+
// stop current search thread if new search started
|
28
|
+
if (state.n != _this.currentSuid) return;
|
29
|
+
|
30
|
+
var results =
|
31
|
+
performSearch(_this.data, regexps, queries, highlighters, state);
|
32
|
+
var hasMore = (state.limit > 0 && state.pass < 4);
|
33
|
+
|
34
|
+
triggerResults.call(_this, results, !hasMore);
|
35
|
+
if (hasMore) {
|
36
|
+
setTimeout(run, 2);
|
37
|
+
}
|
38
|
+
runs++;
|
39
|
+
};
|
40
|
+
runs = 0;
|
41
|
+
|
42
|
+
// start search thread
|
43
|
+
run();
|
44
|
+
}
|
45
|
+
|
46
|
+
/* ----- Events ------ */
|
47
|
+
this.ready = function(fn) {
|
48
|
+
fn.huid = huid;
|
49
|
+
this.handlers.push(fn);
|
50
|
+
}
|
51
|
+
|
52
|
+
/* ----- Utilities ------ */
|
53
|
+
function splitQuery(query) {
|
54
|
+
return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
|
55
|
+
return string.match(/\S/);
|
56
|
+
});
|
57
|
+
}
|
58
|
+
|
59
|
+
function buildRegexps(queries) {
|
60
|
+
return jQuery.map(queries, function(query) {
|
61
|
+
return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i');
|
62
|
+
});
|
63
|
+
}
|
64
|
+
|
65
|
+
function buildHilighters(queries) {
|
66
|
+
return jQuery.map(queries, function(query) {
|
67
|
+
return jQuery.map(query.split(''), function(l, i) {
|
68
|
+
return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
|
69
|
+
}).join('');
|
70
|
+
});
|
71
|
+
}
|
72
|
+
|
73
|
+
// function longMatchRegexp(index, longIndex, regexps) {
|
74
|
+
// for (var i = regexps.length - 1; i >= 0; i--){
|
75
|
+
// if (!index.match(regexps[i]) && !longIndex.match(regexps[i])) return false;
|
76
|
+
// };
|
77
|
+
// return true;
|
78
|
+
// }
|
79
|
+
|
80
|
+
|
81
|
+
/* ----- Mathchers ------ */
|
82
|
+
|
83
|
+
/*
|
84
|
+
* This record matches if the index starts with queries[0] and the record
|
85
|
+
* matches all of the regexps
|
86
|
+
*/
|
87
|
+
function matchPassBeginning(index, longIndex, queries, regexps) {
|
88
|
+
if (index.indexOf(queries[0]) != 0) return false;
|
89
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
90
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
91
|
+
return false;
|
92
|
+
};
|
93
|
+
return true;
|
94
|
+
}
|
95
|
+
|
96
|
+
/*
|
97
|
+
* This record matches if the longIndex starts with queries[0] and the
|
98
|
+
* longIndex matches all of the regexps
|
99
|
+
*/
|
100
|
+
function matchPassLongIndex(index, longIndex, queries, regexps) {
|
101
|
+
if (longIndex.indexOf(queries[0]) != 0) return false;
|
102
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
103
|
+
if (!longIndex.match(regexps[i]))
|
104
|
+
return false;
|
105
|
+
};
|
106
|
+
return true;
|
107
|
+
}
|
108
|
+
|
109
|
+
/*
|
110
|
+
* This record matches if the index contains queries[0] and the record
|
111
|
+
* matches all of the regexps
|
112
|
+
*/
|
113
|
+
function matchPassContains(index, longIndex, queries, regexps) {
|
114
|
+
if (index.indexOf(queries[0]) == -1) return false;
|
115
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
116
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
117
|
+
return false;
|
118
|
+
};
|
119
|
+
return true;
|
120
|
+
}
|
121
|
+
|
122
|
+
/*
|
123
|
+
* This record matches if regexps[0] matches the index and the record
|
124
|
+
* matches all of the regexps
|
125
|
+
*/
|
126
|
+
function matchPassRegexp(index, longIndex, queries, regexps) {
|
127
|
+
if (!index.match(regexps[0])) return false;
|
128
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
129
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
130
|
+
return false;
|
131
|
+
};
|
132
|
+
return true;
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
/* ----- Highlighters ------ */
|
137
|
+
function highlightRegexp(info, queries, regexps, highlighters) {
|
138
|
+
var result = createResult(info);
|
139
|
+
for (var i=0, l = regexps.length; i < l; i++) {
|
140
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
141
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
142
|
+
};
|
143
|
+
return result;
|
144
|
+
}
|
145
|
+
|
146
|
+
function hltSubstring(string, pos, length) {
|
147
|
+
return string.substring(0, pos) + '\u0001' + string.substring(pos, pos + length) + '\u0002' + string.substring(pos + length);
|
148
|
+
}
|
149
|
+
|
150
|
+
function highlightQuery(info, queries, regexps, highlighters) {
|
151
|
+
var result = createResult(info);
|
152
|
+
var pos = 0;
|
153
|
+
var lcTitle = result.title.toLowerCase();
|
154
|
+
|
155
|
+
pos = lcTitle.indexOf(queries[0]);
|
156
|
+
if (pos != -1) {
|
157
|
+
result.title = hltSubstring(result.title, pos, queries[0].length);
|
158
|
+
}
|
159
|
+
|
160
|
+
result.namespace = result.namespace.replace(regexps[0], highlighters[0]);
|
161
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
162
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
163
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
164
|
+
};
|
165
|
+
return result;
|
166
|
+
}
|
167
|
+
|
168
|
+
function createResult(info) {
|
169
|
+
var result = {};
|
170
|
+
result.title = info[0];
|
171
|
+
result.namespace = info[1];
|
172
|
+
result.path = info[2];
|
173
|
+
result.params = info[3];
|
174
|
+
result.snippet = info[4];
|
175
|
+
result.badge = info[6];
|
176
|
+
return result;
|
177
|
+
}
|
178
|
+
|
179
|
+
/* ----- Searching ------ */
|
180
|
+
function performSearch(data, regexps, queries, highlighters, state) {
|
181
|
+
var searchIndex = data.searchIndex;
|
182
|
+
var longSearchIndex = data.longSearchIndex;
|
183
|
+
var info = data.info;
|
184
|
+
var result = [];
|
185
|
+
var i = state.from;
|
186
|
+
var l = searchIndex.length;
|
187
|
+
var togo = CHUNK_SIZE;
|
188
|
+
var matchFunc, hltFunc;
|
189
|
+
|
190
|
+
while (state.pass < 4 && state.limit > 0 && togo > 0) {
|
191
|
+
if (state.pass == 0) {
|
192
|
+
matchFunc = matchPassBeginning;
|
193
|
+
hltFunc = highlightQuery;
|
194
|
+
} else if (state.pass == 1) {
|
195
|
+
matchFunc = matchPassLongIndex;
|
196
|
+
hltFunc = highlightQuery;
|
197
|
+
} else if (state.pass == 2) {
|
198
|
+
matchFunc = matchPassContains;
|
199
|
+
hltFunc = highlightQuery;
|
200
|
+
} else if (state.pass == 3) {
|
201
|
+
matchFunc = matchPassRegexp;
|
202
|
+
hltFunc = highlightRegexp;
|
203
|
+
}
|
204
|
+
|
205
|
+
for (; togo > 0 && i < l && state.limit > 0; i++, togo--) {
|
206
|
+
if (info[i].n == state.n) continue;
|
207
|
+
if (matchFunc(searchIndex[i], longSearchIndex[i], queries, regexps)) {
|
208
|
+
info[i].n = state.n;
|
209
|
+
result.push(hltFunc(info[i], queries, regexps, highlighters));
|
210
|
+
state.limit--;
|
211
|
+
}
|
212
|
+
};
|
213
|
+
if (searchIndex.length <= i) {
|
214
|
+
state.pass++;
|
215
|
+
i = state.from = 0;
|
216
|
+
} else {
|
217
|
+
state.from = i;
|
218
|
+
}
|
219
|
+
}
|
220
|
+
return result;
|
221
|
+
}
|
222
|
+
|
223
|
+
function triggerResults(results, isLast) {
|
224
|
+
jQuery.each(this.handlers, function(i, fn) {
|
225
|
+
fn.call(this, results, isLast)
|
226
|
+
})
|
227
|
+
}
|
228
|
+
}
|
229
|
+
|
Binary file
|
@@ -0,0 +1,293 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
|
7
|
+
<title>Table of Contents - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<script type="text/javascript">
|
10
|
+
var rdoc_rel_prefix = "./";
|
11
|
+
var index_rel_prefix = "./";
|
12
|
+
</script>
|
13
|
+
|
14
|
+
<script src="./js/jquery.js"></script>
|
15
|
+
<script src="./js/darkfish.js"></script>
|
16
|
+
|
17
|
+
<link href="./css/fonts.css" rel="stylesheet">
|
18
|
+
<link href="./css/rdoc.css" rel="stylesheet">
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
<body id="top" class="table-of-contents">
|
24
|
+
<main role="main">
|
25
|
+
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
<h2 id="pages">Pages</h2>
|
30
|
+
<ul>
|
31
|
+
|
32
|
+
<li class="file">
|
33
|
+
<a href="Gemfile.html">Gemfile</a>
|
34
|
+
|
35
|
+
</li>
|
36
|
+
|
37
|
+
<li class="file">
|
38
|
+
<a href="Gemfile_lock.html">Gemfile.lock</a>
|
39
|
+
|
40
|
+
</li>
|
41
|
+
|
42
|
+
<li class="file">
|
43
|
+
<a href="Guardfile.html">Guardfile</a>
|
44
|
+
|
45
|
+
</li>
|
46
|
+
|
47
|
+
<li class="file">
|
48
|
+
<a href="README_md.html">README</a>
|
49
|
+
|
50
|
+
<ul>
|
51
|
+
|
52
|
+
<li><a href="README_md.html#label-Pr-C3-A1ctica+9.+Programaci-C3-B3n+funcional.+Funciones+de+orden+superior.">Práctica 9. Programación funcional. Funciones de orden superior.</a>
|
53
|
+
|
54
|
+
</ul>
|
55
|
+
|
56
|
+
</li>
|
57
|
+
|
58
|
+
<li class="file">
|
59
|
+
<a href="Rakefile.html">Rakefile</a>
|
60
|
+
|
61
|
+
</li>
|
62
|
+
|
63
|
+
<li class="file">
|
64
|
+
<a href="alimentacion_gemspec.html">alimentacion.gemspec</a>
|
65
|
+
|
66
|
+
</li>
|
67
|
+
|
68
|
+
<li class="file">
|
69
|
+
<a href="bin/setup.html">setup</a>
|
70
|
+
|
71
|
+
</li>
|
72
|
+
|
73
|
+
</ul>
|
74
|
+
|
75
|
+
|
76
|
+
<h2 id="classes">Classes and Modules</h2>
|
77
|
+
<ul>
|
78
|
+
|
79
|
+
<li class="module">
|
80
|
+
<a href="Alimentacion.html">Alimentacion</a>
|
81
|
+
|
82
|
+
</li>
|
83
|
+
|
84
|
+
<li class="class">
|
85
|
+
<a href="Alimentacion/Error.html">Alimentacion::Error</a>
|
86
|
+
|
87
|
+
</li>
|
88
|
+
|
89
|
+
<li class="class">
|
90
|
+
<a href="Alimentos.html">Alimentos</a>
|
91
|
+
|
92
|
+
</li>
|
93
|
+
|
94
|
+
<li class="class">
|
95
|
+
<a href="Eficiencia_Energetica.html">Eficiencia_Energetica</a>
|
96
|
+
|
97
|
+
</li>
|
98
|
+
|
99
|
+
<li class="class">
|
100
|
+
<a href="Lista.html">Lista</a>
|
101
|
+
|
102
|
+
</li>
|
103
|
+
|
104
|
+
<li class="class">
|
105
|
+
<a href="Object.html">Object</a>
|
106
|
+
|
107
|
+
</li>
|
108
|
+
|
109
|
+
<li class="class">
|
110
|
+
<a href="Plato.html">Plato</a>
|
111
|
+
|
112
|
+
</li>
|
113
|
+
|
114
|
+
</ul>
|
115
|
+
|
116
|
+
<h2 id="methods">Methods</h2>
|
117
|
+
<ul>
|
118
|
+
|
119
|
+
<li class="method">
|
120
|
+
<a href="Alimentos.html#method-c-new">::new</a>
|
121
|
+
—
|
122
|
+
<span class="container">Alimentos</span>
|
123
|
+
|
124
|
+
<li class="method">
|
125
|
+
<a href="Lista.html#method-c-new">::new</a>
|
126
|
+
—
|
127
|
+
<span class="container">Lista</span>
|
128
|
+
|
129
|
+
<li class="method">
|
130
|
+
<a href="Plato.html#method-c-new">::new</a>
|
131
|
+
—
|
132
|
+
<span class="container">Plato</span>
|
133
|
+
|
134
|
+
<li class="method">
|
135
|
+
<a href="Eficiencia_Energetica.html#method-c-new">::new</a>
|
136
|
+
—
|
137
|
+
<span class="container">Eficiencia_Energetica</span>
|
138
|
+
|
139
|
+
<li class="method">
|
140
|
+
<a href="Alimentos.html#method-i-3C-3D-3E">#<=></a>
|
141
|
+
—
|
142
|
+
<span class="container">Alimentos</span>
|
143
|
+
|
144
|
+
<li class="method">
|
145
|
+
<a href="Plato.html#method-i-3C-3D-3E">#<=></a>
|
146
|
+
—
|
147
|
+
<span class="container">Plato</span>
|
148
|
+
|
149
|
+
<li class="method">
|
150
|
+
<a href="Eficiencia_Energetica.html#method-i-3C-3D-3E">#<=></a>
|
151
|
+
—
|
152
|
+
<span class="container">Eficiencia_Energetica</span>
|
153
|
+
|
154
|
+
<li class="method">
|
155
|
+
<a href="Alimentos.html#method-i-auxiliar">#auxiliar</a>
|
156
|
+
—
|
157
|
+
<span class="container">Alimentos</span>
|
158
|
+
|
159
|
+
<li class="method">
|
160
|
+
<a href="Alimentos.html#method-i-auxiliar2">#auxiliar2</a>
|
161
|
+
—
|
162
|
+
<span class="container">Alimentos</span>
|
163
|
+
|
164
|
+
<li class="method">
|
165
|
+
<a href="Lista.html#method-i-dieta_gases_anuales">#dieta_gases_anuales</a>
|
166
|
+
—
|
167
|
+
<span class="container">Lista</span>
|
168
|
+
|
169
|
+
<li class="method">
|
170
|
+
<a href="Lista.html#method-i-dieta_gases_diarios">#dieta_gases_diarios</a>
|
171
|
+
—
|
172
|
+
<span class="container">Lista</span>
|
173
|
+
|
174
|
+
<li class="method">
|
175
|
+
<a href="Lista.html#method-i-dieta_terreno">#dieta_terreno</a>
|
176
|
+
—
|
177
|
+
<span class="container">Lista</span>
|
178
|
+
|
179
|
+
<li class="method">
|
180
|
+
<a href="Lista.html#method-i-each">#each</a>
|
181
|
+
—
|
182
|
+
<span class="container">Lista</span>
|
183
|
+
|
184
|
+
<li class="method">
|
185
|
+
<a href="Eficiencia_Energetica.html#method-i-emisiones_gases_anuales">#emisiones_gases_anuales</a>
|
186
|
+
—
|
187
|
+
<span class="container">Eficiencia_Energetica</span>
|
188
|
+
|
189
|
+
<li class="method">
|
190
|
+
<a href="Eficiencia_Energetica.html#method-i-emisiones_gases_diarios">#emisiones_gases_diarios</a>
|
191
|
+
—
|
192
|
+
<span class="container">Eficiencia_Energetica</span>
|
193
|
+
|
194
|
+
<li class="method">
|
195
|
+
<a href="Lista.html#method-i-extract_head">#extract_head</a>
|
196
|
+
—
|
197
|
+
<span class="container">Lista</span>
|
198
|
+
|
199
|
+
<li class="method">
|
200
|
+
<a href="Lista.html#method-i-extract_tail">#extract_tail</a>
|
201
|
+
—
|
202
|
+
<span class="container">Lista</span>
|
203
|
+
|
204
|
+
<li class="method">
|
205
|
+
<a href="Eficiencia_Energetica.html#method-i-huella_nutricional">#huella_nutricional</a>
|
206
|
+
—
|
207
|
+
<span class="container">Eficiencia_Energetica</span>
|
208
|
+
|
209
|
+
<li class="method">
|
210
|
+
<a href="Alimentos.html#method-i-impacto_hombre">#impacto_hombre</a>
|
211
|
+
—
|
212
|
+
<span class="container">Alimentos</span>
|
213
|
+
|
214
|
+
<li class="method">
|
215
|
+
<a href="Alimentos.html#method-i-impacto_mujer">#impacto_mujer</a>
|
216
|
+
—
|
217
|
+
<span class="container">Alimentos</span>
|
218
|
+
|
219
|
+
<li class="method">
|
220
|
+
<a href="Lista.html#method-i-imprimir">#imprimir</a>
|
221
|
+
—
|
222
|
+
<span class="container">Lista</span>
|
223
|
+
|
224
|
+
<li class="method">
|
225
|
+
<a href="Lista.html#method-i-insert">#insert</a>
|
226
|
+
—
|
227
|
+
<span class="container">Lista</span>
|
228
|
+
|
229
|
+
<li class="method">
|
230
|
+
<a href="Lista.html#method-i-insert_head">#insert_head</a>
|
231
|
+
—
|
232
|
+
<span class="container">Lista</span>
|
233
|
+
|
234
|
+
<li class="method">
|
235
|
+
<a href="Lista.html#method-i-insert_tail">#insert_tail</a>
|
236
|
+
—
|
237
|
+
<span class="container">Lista</span>
|
238
|
+
|
239
|
+
<li class="method">
|
240
|
+
<a href="Plato.html#method-i-porcentaje_hidratos">#porcentaje_hidratos</a>
|
241
|
+
—
|
242
|
+
<span class="container">Plato</span>
|
243
|
+
|
244
|
+
<li class="method">
|
245
|
+
<a href="Plato.html#method-i-porcentaje_lipidos">#porcentaje_lipidos</a>
|
246
|
+
—
|
247
|
+
<span class="container">Plato</span>
|
248
|
+
|
249
|
+
<li class="method">
|
250
|
+
<a href="Plato.html#method-i-porcentaje_proteinas">#porcentaje_proteinas</a>
|
251
|
+
—
|
252
|
+
<span class="container">Plato</span>
|
253
|
+
|
254
|
+
<li class="method">
|
255
|
+
<a href="Alimentos.html#method-i-to_s">#to_s</a>
|
256
|
+
—
|
257
|
+
<span class="container">Alimentos</span>
|
258
|
+
|
259
|
+
<li class="method">
|
260
|
+
<a href="Plato.html#method-i-to_s">#to_s</a>
|
261
|
+
—
|
262
|
+
<span class="container">Plato</span>
|
263
|
+
|
264
|
+
<li class="method">
|
265
|
+
<a href="Eficiencia_Energetica.html#method-i-to_s">#to_s</a>
|
266
|
+
—
|
267
|
+
<span class="container">Eficiencia_Energetica</span>
|
268
|
+
|
269
|
+
<li class="method">
|
270
|
+
<a href="Eficiencia_Energetica.html#method-i-uso_terreno">#uso_terreno</a>
|
271
|
+
—
|
272
|
+
<span class="container">Eficiencia_Energetica</span>
|
273
|
+
|
274
|
+
<li class="method">
|
275
|
+
<a href="Plato.html#method-i-valor_calorico">#valor_calorico</a>
|
276
|
+
—
|
277
|
+
<span class="container">Plato</span>
|
278
|
+
|
279
|
+
<li class="method">
|
280
|
+
<a href="Alimentos.html#method-i-valor_energetico">#valor_energetico</a>
|
281
|
+
—
|
282
|
+
<span class="container">Alimentos</span>
|
283
|
+
|
284
|
+
</ul>
|
285
|
+
</main>
|
286
|
+
|
287
|
+
|
288
|
+
<footer id="validator-badges" role="contentinfo">
|
289
|
+
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
290
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.1.0.
|
291
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
292
|
+
</footer>
|
293
|
+
|