tddAlimentos 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 +2 -0
- data/.gitignore +13 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +101 -0
- data/Guardfile +83 -0
- data/README.md +46 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Alimento.html +428 -0
- data/docs/Gemfile.html +98 -0
- data/docs/Gemfile_lock.html +183 -0
- data/docs/Guardfile.html +166 -0
- data/docs/List.html +682 -0
- data/docs/Object.html +128 -0
- data/docs/Plato.html +607 -0
- data/docs/PlatoAmbiental.html +492 -0
- data/docs/README_md.html +126 -0
- data/docs/Rakefile.html +100 -0
- data/docs/TddAlimentos.html +110 -0
- data/docs/TddAlimentos/Error.html +103 -0
- data/docs/bin/setup.html +100 -0
- data/docs/created.rid +17 -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 +307 -0
- data/docs/tddAlimentos_gemspec.html +133 -0
- data/lib/tddAlimentos.rb +12 -0
- data/lib/tddAlimentos/alimento.rb +56 -0
- data/lib/tddAlimentos/lista.rb +172 -0
- data/lib/tddAlimentos/menu.rb +51 -0
- data/lib/tddAlimentos/plato.rb +125 -0
- data/lib/tddAlimentos/platoAmbiental.rb +108 -0
- data/lib/tddAlimentos/platoDSL.rb +94 -0
- data/lib/tddAlimentos/version.rb +3 -0
- data/tddAlimentos.gemspec +39 -0
- metadata +249 -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":["alimento","list","object","plato","platoambiental","tddalimentos","error","<=>()","<=>()","<=>()","calc_gei()","calc_perc_carbohydrates()","calc_perc_lipids()","calc_perc_proteins()","calc_terrain()","calc_vct()","each()","empty?()","energetic_value()","extract()","extract_tail()","insert()","insert_more()","insert_tail()","new()","new()","new()","new()","nutritional_footprint()","to_rs()","to_s()","to_s()","to_s()","to_s()","gemfile","gemfile.lock","guardfile","readme","rakefile","setup","tddalimentos.gemspec"],"longSearchIndex":["alimento","list","object","plato","platoambiental","tddalimentos","tddalimentos::error","alimento#<=>()","plato#<=>()","platoambiental#<=>()","platoambiental#calc_gei()","plato#calc_perc_carbohydrates()","plato#calc_perc_lipids()","plato#calc_perc_proteins()","platoambiental#calc_terrain()","plato#calc_vct()","list#each()","list#empty?()","alimento#energetic_value()","list#extract()","list#extract_tail()","list#insert()","list#insert_more()","list#insert_tail()","alimento::new()","list::new()","plato::new()","platoambiental::new()","platoambiental#nutritional_footprint()","list#to_rs()","alimento#to_s()","list#to_s()","plato#to_s()","platoambiental#to_s()","","","","","","",""],"info":[["Alimento","","Alimento.html","","<p>alimento.rb\n<p>Autor — Himar Manuel Barquín Carrasco\n<p>Web — github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373\n"],["List","","List.html","","<p>lista.rb\n<p>Autor — Himar Manuel Barquín Carrasco\n<p>Web — github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373\n"],["Object","","Object.html","",""],["Plato","","Plato.html","","<p>plato.rb\n<p>Autor — Himar Manuel Barquín Carrasco\n<p>Web — github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373\n"],["PlatoAmbiental","","PlatoAmbiental.html","","<p>platoAmbiental.rb\n<p>Autor — Himar Manuel Barquín Carrasco\n<p>Web — github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373 …\n"],["TddAlimentos","","TddAlimentos.html","",""],["TddAlimentos::Error","","TddAlimentos/Error.html","",""],["<=>","Alimento","Alimento.html#method-i-3C-3D-3E","(another)","<p>Nos permite comparar alimentos por su valor energético\n<p>Parámetros — \n<p>another: Otro plato que se compara con …\n\n"],["<=>","Plato","Plato.html#method-i-3C-3D-3E","(another)","<p>Nos permite comparar platos por su Valor Calórico Total\n<p>Parámetros — \n<p>another: Otro plato que se compara …\n\n"],["<=>","PlatoAmbiental","PlatoAmbiental.html#method-i-3C-3D-3E","(another)","<p>Permite la comparación de dos 'platos ambientales' mediante la huella nutricional\n<p>Parámetros — \n"],["calc_gei","PlatoAmbiental","PlatoAmbiental.html#method-i-calc_gei","()","<p>Calcula el gas de efecto invernadero que se produce al crear el plato\n<p>Devuelve — GEI del plato\n\n"],["calc_perc_carbohydrates","Plato","Plato.html#method-i-calc_perc_carbohydrates","()","<p>Calcula el porcentaje de carbohidratos del plato\n<p>Devuelve — Porcentaje de carbohidratos\n\n"],["calc_perc_lipids","Plato","Plato.html#method-i-calc_perc_lipids","()","<p>Calcula el porcentaje de lípidos del plato\n<p>Devuelve — Porcentaje de lípidos\n\n"],["calc_perc_proteins","Plato","Plato.html#method-i-calc_perc_proteins","()","<p>Calcula el porcetaje de proteínas del plato\n<p>Devuelve — Porcentaje de proteínas\n\n"],["calc_terrain","PlatoAmbiental","PlatoAmbiental.html#method-i-calc_terrain","()","<p>Calcula el terreno consumido por la producción del plato\n<p>Devuelve — Valor del terreno\n\n"],["calc_vct","Plato","Plato.html#method-i-calc_vct","()","<p>Calcula el Valor Calórico Total del plato\n<p>Devuelve — Valor Calórico Total del plato\n\n"],["each","List","List.html#method-i-each","()","<p>Permite que la clase List sea enumerable, lo que nos deja utilizar métodos como max(), min(), reverse_each …\n"],["empty?","List","List.html#method-i-empty-3F","()","<p>Comprueba si la lista está vacía\n<p>Devuelve — 'true' si la lista está vacía. 'false' en otro …\n\n"],["energetic_value","Alimento","Alimento.html#method-i-energetic_value","()","<p>Calcula el valor energético del alimento\n<p>Devuelve — Valor decimal con el valor energético\n\n"],["extract","List","List.html#method-i-extract","()","<p>Extrae el elemento en la cabeza\n<p>Devuelve — Valor extraído\n\n"],["extract_tail","List","List.html#method-i-extract_tail","()","<p>Extrae el elemento en la cola de la lista\n<p>Devuelve — Valor extraído\n\n"],["insert","List","List.html#method-i-insert","(valor)","<p>Inserta un valor por la cabeza\n<p>Parámetro — \n<p>valor: Valor a insertar\n\n"],["insert_more","List","List.html#method-i-insert_more","(arr)","<p>Inserta un conjunto de elementos en la cabeza\n<p>Parámetro — \n<p>arr: Array de elementos a insertar\n\n"],["insert_tail","List","List.html#method-i-insert_tail","(valor)","<p>Inserta un valor por la cola\n<p>Parámetro — \n<p>valor: Valor a insertar\n\n"],["new","Alimento","Alimento.html#method-c-new","(name, protein, carbohydrates, lipids, gei, terrain)","<p>Constructor de la clase Alimento\n<p>Parámetros — \n<p>name: Nombre del alimento\n<p>protein: Proteínas del alimento\n"],["new","List","List.html#method-c-new","()","<p>Constructor de la clase List\n"],["new","Plato","Plato.html#method-c-new","(name, alimentos = [], gramos = [])","<p>Constructor de la clase Plato\n<p>Parámetros — \n<p>name: Nombre del plato\n<p>alimentos: Conjunto de alimentos que componen …\n"],["new","PlatoAmbiental","PlatoAmbiental.html#method-c-new","(name, alimentos = [], gramos = [])","<p>Constructor de la clase PlatoAmbiental\n<p>Parámetros — \n<p>name: Nombre del plato\n<p>alimentos: Conjunto de alimentos …\n"],["nutritional_footprint","PlatoAmbiental","PlatoAmbiental.html#method-i-nutritional_footprint","()","<p>Calcula la huella nutricional del plato\n<p>Devuelve — Valor de la huella nutricional\n\n"],["to_rs","List","List.html#method-i-to_rs","()","<p>Muestra la lista desde la cola\n<p>Devuelve — Cadena de texto con los elementos de la lista en orden inverso …\n\n"],["to_s","Alimento","Alimento.html#method-i-to_s","()","<p>Imprime la información del alimento\n<p>Devuelve — Cadena de texto con la información del alimento\n\n"],["to_s","List","List.html#method-i-to_s","()","<p>Muestra la lista desde la cabeza\n<p>Devuelve — Cadena de texto con los elementos de la lista\n\n"],["to_s","Plato","Plato.html#method-i-to_s","()","<p>Método para imprimir la información del plato\n<p>Devuelve — Cadena de texto con la información del plato\n\n"],["to_s","PlatoAmbiental","PlatoAmbiental.html#method-i-to_s","()","<p>Imprime la información de la clase Plato y le añade la información del GEI y el terreno\n<p>Devuelve — Cadena …\n\n"],["Gemfile","","Gemfile.html","","<p>source “rubygems.org”\n<p># Specify your gem's dependencies in tddAlimentos.gemspec gemspec …\n"],["Gemfile.lock","","Gemfile_lock.html","","<p>PATH\n\n<pre>remote: .\nspecs:\n tddAlimentos (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: POO: Programación Funcional. Funciones de orden superior.\n<p>En esta práctica vamos a desarrollar …\n"],["Rakefile","","Rakefile.html","","<p>require “bundler/gem_tasks” require “rspec/core/rake_task”\n<p>RSpec::Core::RakeTask.new …\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"],["tddAlimentos.gemspec","","tddAlimentos_gemspec.html","","<p>lib = File.expand_path(“lib”, __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) …\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,307 @@
|
|
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-3A+POO-3A+Programaci-C3-B3n+Funcional.+Funciones+de+orden+superior.">Práctica 9: POO: Programación Funcional. Funciones de orden superior.</a>
|
53
|
+
|
54
|
+
<li><a href="README_md.html#label-Metodolog-C3-ADa">Metodología</a>
|
55
|
+
|
56
|
+
<li><a href="README_md.html#label-Datos+del+creador">Datos del creador</a>
|
57
|
+
|
58
|
+
</ul>
|
59
|
+
|
60
|
+
</li>
|
61
|
+
|
62
|
+
<li class="file">
|
63
|
+
<a href="Rakefile.html">Rakefile</a>
|
64
|
+
|
65
|
+
</li>
|
66
|
+
|
67
|
+
<li class="file">
|
68
|
+
<a href="bin/setup.html">setup</a>
|
69
|
+
|
70
|
+
</li>
|
71
|
+
|
72
|
+
<li class="file">
|
73
|
+
<a href="tddAlimentos_gemspec.html">tddAlimentos.gemspec</a>
|
74
|
+
|
75
|
+
</li>
|
76
|
+
|
77
|
+
</ul>
|
78
|
+
|
79
|
+
|
80
|
+
<h2 id="classes">Classes and Modules</h2>
|
81
|
+
<ul>
|
82
|
+
|
83
|
+
<li class="class">
|
84
|
+
<a href="Alimento.html">Alimento</a>
|
85
|
+
|
86
|
+
<ul>
|
87
|
+
|
88
|
+
<li><a href="Alimento.html#label-alimento.rb">alimento.rb</a>
|
89
|
+
|
90
|
+
<li><a href="Alimento.html#label-Descripci-C3-B3n">Descripción</a>
|
91
|
+
|
92
|
+
<li><a href="Alimento.html#label-M-C3-A9todos">Métodos</a>
|
93
|
+
|
94
|
+
</ul>
|
95
|
+
|
96
|
+
</li>
|
97
|
+
|
98
|
+
<li class="class">
|
99
|
+
<a href="List.html">List</a>
|
100
|
+
|
101
|
+
<ul>
|
102
|
+
|
103
|
+
<li><a href="List.html#label-lista.rb">lista.rb</a>
|
104
|
+
|
105
|
+
<li><a href="List.html#label-Descripci-C3-B3n">Descripción</a>
|
106
|
+
|
107
|
+
<li><a href="List.html#label-M-C3-A9todos">Métodos</a>
|
108
|
+
|
109
|
+
</ul>
|
110
|
+
|
111
|
+
</li>
|
112
|
+
|
113
|
+
<li class="class">
|
114
|
+
<a href="Object.html">Object</a>
|
115
|
+
|
116
|
+
</li>
|
117
|
+
|
118
|
+
<li class="class">
|
119
|
+
<a href="Plato.html">Plato</a>
|
120
|
+
|
121
|
+
<ul>
|
122
|
+
|
123
|
+
<li><a href="Plato.html#label-plato.rb">plato.rb</a>
|
124
|
+
|
125
|
+
<li><a href="Plato.html#label-Descripci-C3-B3n">Descripción</a>
|
126
|
+
|
127
|
+
<li><a href="Plato.html#label-M-C3-A9todos">Métodos</a>
|
128
|
+
|
129
|
+
</ul>
|
130
|
+
|
131
|
+
</li>
|
132
|
+
|
133
|
+
<li class="class">
|
134
|
+
<a href="PlatoAmbiental.html">PlatoAmbiental</a>
|
135
|
+
|
136
|
+
<ul>
|
137
|
+
|
138
|
+
<li><a href="PlatoAmbiental.html#label-platoAmbiental.rb">platoAmbiental.rb</a>
|
139
|
+
|
140
|
+
<li><a href="PlatoAmbiental.html#label-Descripci-C3-B3n">Descripción</a>
|
141
|
+
|
142
|
+
<li><a href="PlatoAmbiental.html#label-M-C3-A9todos">Métodos</a>
|
143
|
+
|
144
|
+
</ul>
|
145
|
+
|
146
|
+
</li>
|
147
|
+
|
148
|
+
<li class="module">
|
149
|
+
<a href="TddAlimentos.html">TddAlimentos</a>
|
150
|
+
|
151
|
+
</li>
|
152
|
+
|
153
|
+
<li class="class">
|
154
|
+
<a href="TddAlimentos/Error.html">TddAlimentos::Error</a>
|
155
|
+
|
156
|
+
</li>
|
157
|
+
|
158
|
+
</ul>
|
159
|
+
|
160
|
+
<h2 id="methods">Methods</h2>
|
161
|
+
<ul>
|
162
|
+
|
163
|
+
<li class="method">
|
164
|
+
<a href="Alimento.html#method-c-new">::new</a>
|
165
|
+
—
|
166
|
+
<span class="container">Alimento</span>
|
167
|
+
|
168
|
+
<li class="method">
|
169
|
+
<a href="List.html#method-c-new">::new</a>
|
170
|
+
—
|
171
|
+
<span class="container">List</span>
|
172
|
+
|
173
|
+
<li class="method">
|
174
|
+
<a href="Plato.html#method-c-new">::new</a>
|
175
|
+
—
|
176
|
+
<span class="container">Plato</span>
|
177
|
+
|
178
|
+
<li class="method">
|
179
|
+
<a href="PlatoAmbiental.html#method-c-new">::new</a>
|
180
|
+
—
|
181
|
+
<span class="container">PlatoAmbiental</span>
|
182
|
+
|
183
|
+
<li class="method">
|
184
|
+
<a href="Alimento.html#method-i-3C-3D-3E">#<=></a>
|
185
|
+
—
|
186
|
+
<span class="container">Alimento</span>
|
187
|
+
|
188
|
+
<li class="method">
|
189
|
+
<a href="Plato.html#method-i-3C-3D-3E">#<=></a>
|
190
|
+
—
|
191
|
+
<span class="container">Plato</span>
|
192
|
+
|
193
|
+
<li class="method">
|
194
|
+
<a href="PlatoAmbiental.html#method-i-3C-3D-3E">#<=></a>
|
195
|
+
—
|
196
|
+
<span class="container">PlatoAmbiental</span>
|
197
|
+
|
198
|
+
<li class="method">
|
199
|
+
<a href="PlatoAmbiental.html#method-i-calc_gei">#calc_gei</a>
|
200
|
+
—
|
201
|
+
<span class="container">PlatoAmbiental</span>
|
202
|
+
|
203
|
+
<li class="method">
|
204
|
+
<a href="Plato.html#method-i-calc_perc_carbohydrates">#calc_perc_carbohydrates</a>
|
205
|
+
—
|
206
|
+
<span class="container">Plato</span>
|
207
|
+
|
208
|
+
<li class="method">
|
209
|
+
<a href="Plato.html#method-i-calc_perc_lipids">#calc_perc_lipids</a>
|
210
|
+
—
|
211
|
+
<span class="container">Plato</span>
|
212
|
+
|
213
|
+
<li class="method">
|
214
|
+
<a href="Plato.html#method-i-calc_perc_proteins">#calc_perc_proteins</a>
|
215
|
+
—
|
216
|
+
<span class="container">Plato</span>
|
217
|
+
|
218
|
+
<li class="method">
|
219
|
+
<a href="PlatoAmbiental.html#method-i-calc_terrain">#calc_terrain</a>
|
220
|
+
—
|
221
|
+
<span class="container">PlatoAmbiental</span>
|
222
|
+
|
223
|
+
<li class="method">
|
224
|
+
<a href="Plato.html#method-i-calc_vct">#calc_vct</a>
|
225
|
+
—
|
226
|
+
<span class="container">Plato</span>
|
227
|
+
|
228
|
+
<li class="method">
|
229
|
+
<a href="List.html#method-i-each">#each</a>
|
230
|
+
—
|
231
|
+
<span class="container">List</span>
|
232
|
+
|
233
|
+
<li class="method">
|
234
|
+
<a href="List.html#method-i-empty-3F">#empty?</a>
|
235
|
+
—
|
236
|
+
<span class="container">List</span>
|
237
|
+
|
238
|
+
<li class="method">
|
239
|
+
<a href="Alimento.html#method-i-energetic_value">#energetic_value</a>
|
240
|
+
—
|
241
|
+
<span class="container">Alimento</span>
|
242
|
+
|
243
|
+
<li class="method">
|
244
|
+
<a href="List.html#method-i-extract">#extract</a>
|
245
|
+
—
|
246
|
+
<span class="container">List</span>
|
247
|
+
|
248
|
+
<li class="method">
|
249
|
+
<a href="List.html#method-i-extract_tail">#extract_tail</a>
|
250
|
+
—
|
251
|
+
<span class="container">List</span>
|
252
|
+
|
253
|
+
<li class="method">
|
254
|
+
<a href="List.html#method-i-insert">#insert</a>
|
255
|
+
—
|
256
|
+
<span class="container">List</span>
|
257
|
+
|
258
|
+
<li class="method">
|
259
|
+
<a href="List.html#method-i-insert_more">#insert_more</a>
|
260
|
+
—
|
261
|
+
<span class="container">List</span>
|
262
|
+
|
263
|
+
<li class="method">
|
264
|
+
<a href="List.html#method-i-insert_tail">#insert_tail</a>
|
265
|
+
—
|
266
|
+
<span class="container">List</span>
|
267
|
+
|
268
|
+
<li class="method">
|
269
|
+
<a href="PlatoAmbiental.html#method-i-nutritional_footprint">#nutritional_footprint</a>
|
270
|
+
—
|
271
|
+
<span class="container">PlatoAmbiental</span>
|
272
|
+
|
273
|
+
<li class="method">
|
274
|
+
<a href="List.html#method-i-to_rs">#to_rs</a>
|
275
|
+
—
|
276
|
+
<span class="container">List</span>
|
277
|
+
|
278
|
+
<li class="method">
|
279
|
+
<a href="Alimento.html#method-i-to_s">#to_s</a>
|
280
|
+
—
|
281
|
+
<span class="container">Alimento</span>
|
282
|
+
|
283
|
+
<li class="method">
|
284
|
+
<a href="List.html#method-i-to_s">#to_s</a>
|
285
|
+
—
|
286
|
+
<span class="container">List</span>
|
287
|
+
|
288
|
+
<li class="method">
|
289
|
+
<a href="Plato.html#method-i-to_s">#to_s</a>
|
290
|
+
—
|
291
|
+
<span class="container">Plato</span>
|
292
|
+
|
293
|
+
<li class="method">
|
294
|
+
<a href="PlatoAmbiental.html#method-i-to_s">#to_s</a>
|
295
|
+
—
|
296
|
+
<span class="container">PlatoAmbiental</span>
|
297
|
+
|
298
|
+
</ul>
|
299
|
+
</main>
|
300
|
+
|
301
|
+
|
302
|
+
<footer id="validator-badges" role="contentinfo">
|
303
|
+
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
304
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.1.0.
|
305
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
306
|
+
</footer>
|
307
|
+
|