spoonerize 0.1.0 → 0.1.1
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 +4 -4
- data/.gitignore +2 -0
- data/README.md +2 -4
- data/Rakefile +1 -1
- data/lib/spoonerize/version.rb +1 -1
- data/spoonerize.gemspec +1 -1
- metadata +3 -53
- data/doc/README_md.html +0 -238
- data/doc/Spoonerize.html +0 -125
- data/doc/Spoonerize/Bumper.html +0 -287
- data/doc/Spoonerize/Cli.html +0 -545
- data/doc/Spoonerize/Log.html +0 -362
- data/doc/Spoonerize/Spoonerism.html +0 -759
- data/doc/created.rid +0 -8
- data/doc/css/fonts.css +0 -167
- data/doc/css/rdoc.css +0 -619
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +0 -241
- data/doc/js/darkfish.js +0 -84
- data/doc/js/navigation.js +0 -105
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +0 -110
- data/doc/js/search_index.js +0 -1
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +0 -229
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +0 -257
data/doc/js/navigation.js.gz
DELETED
Binary file
|
data/doc/js/search.js
DELETED
@@ -1,110 +0,0 @@
|
|
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.parentNode;
|
8
|
-
this.searcher = new Searcher(data.index);
|
9
|
-
this.init();
|
10
|
-
}
|
11
|
-
|
12
|
-
Search.prototype = Object.assign({}, Navigation, new function() {
|
13
|
-
var suid = 1;
|
14
|
-
|
15
|
-
this.init = function() {
|
16
|
-
var _this = this;
|
17
|
-
var observer = function(e) {
|
18
|
-
switch(e.keyCode) {
|
19
|
-
case 38: // Event.KEY_UP
|
20
|
-
case 40: // Event.KEY_DOWN
|
21
|
-
return;
|
22
|
-
}
|
23
|
-
_this.search(_this.input.value);
|
24
|
-
};
|
25
|
-
this.input.addEventListener('keyup', observer);
|
26
|
-
this.input.addEventListener('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 = value.trim().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.innerHTML = '';
|
47
|
-
this.result.setAttribute('aria-expanded', 'false');
|
48
|
-
this.setNavigationActive(false);
|
49
|
-
} else if (value != this.lastQuery) {
|
50
|
-
this.lastQuery = value;
|
51
|
-
this.result.setAttribute('aria-busy', 'true');
|
52
|
-
this.result.setAttribute('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;
|
60
|
-
if (this.firstRun && (results.length > 0 || isLast)) {
|
61
|
-
this.current = null;
|
62
|
-
this.result.innerHTML = '';
|
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.classList.add('search-selected');
|
75
|
-
}
|
76
|
-
//TODO: ECMAScript
|
77
|
-
//if (jQuery.browser.msie) this.$element[0].className += '';
|
78
|
-
|
79
|
-
if (isLast) this.result.setAttribute('aria-busy', 'false');
|
80
|
-
}
|
81
|
-
|
82
|
-
this.move = function(isDown) {
|
83
|
-
if (!this.current) return;
|
84
|
-
var next = isDown ? this.current.nextElementSibling : this.current.previousElementSibling;
|
85
|
-
if (next) {
|
86
|
-
this.current.classList.remove('search-selected');
|
87
|
-
next.classList.add('search-selected');
|
88
|
-
this.input.setAttribute('aria-activedescendant', next.getAttribute('id'));
|
89
|
-
this.scrollIntoView(next, this.view);
|
90
|
-
this.current = next;
|
91
|
-
this.input.value = next.firstChild.firstChild.text;
|
92
|
-
this.input.select();
|
93
|
-
}
|
94
|
-
return true;
|
95
|
-
}
|
96
|
-
|
97
|
-
this.hlt = function(html) {
|
98
|
-
return this.escapeHTML(html).
|
99
|
-
replace(/\u0001/g, '<em>').
|
100
|
-
replace(/\u0002/g, '</em>');
|
101
|
-
}
|
102
|
-
|
103
|
-
this.escapeHTML = function(html) {
|
104
|
-
return html.replace(/[&<>]/g, function(c) {
|
105
|
-
return '&#' + c.charCodeAt(0) + ';';
|
106
|
-
});
|
107
|
-
}
|
108
|
-
|
109
|
-
});
|
110
|
-
|
data/doc/js/search_index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["spoonerize","bumper","cli","log","spoonerism","all_excluded_words()","bump()","config_file=()","config_file_loaded?()","contents()","each()","enough_flippable_words?()","execute()","lazy?()","load_config_file()","longest_word_length()","map?()","new()","new()","new()","new()","print?()","print_log()","print_mappings()","reverse?()","reverse?()","save()","save?()","size()","spoonerism()","spoonerize()","to_h()","to_json()","to_s()","write()","readme"],"longSearchIndex":["spoonerize","spoonerize::bumper","spoonerize::cli","spoonerize::log","spoonerize::spoonerism","spoonerize::spoonerism#all_excluded_words()","spoonerize::bumper#bump()","spoonerize::spoonerism#config_file=()","spoonerize::spoonerism#config_file_loaded?()","spoonerize::log#contents()","spoonerize::log#each()","spoonerize::spoonerism#enough_flippable_words?()","spoonerize::cli::execute()","spoonerize::spoonerism#lazy?()","spoonerize::spoonerism#load_config_file()","spoonerize::cli#longest_word_length()","spoonerize::cli#map?()","spoonerize::bumper::new()","spoonerize::cli::new()","spoonerize::log::new()","spoonerize::spoonerism::new()","spoonerize::cli#print?()","spoonerize::cli#print_log()","spoonerize::cli#print_mappings()","spoonerize::bumper#reverse?()","spoonerize::spoonerism#reverse?()","spoonerize::spoonerism#save()","spoonerize::cli#save?()","spoonerize::log#size()","spoonerize::cli#spoonerism()","spoonerize::spoonerism#spoonerize()","spoonerize::spoonerism#to_h()","spoonerize::spoonerism#to_json()","spoonerize::spoonerism#to_s()","spoonerize::log#write()",""],"info":[["Spoonerize","","Spoonerize.html","","<p>The main namespace for the gem.\n"],["Spoonerize::Bumper","","Spoonerize/Bumper.html","","<p>Class that handles bumping an index.\n"],["Spoonerize::Cli","","Spoonerize/Cli.html","","<p>The class for handling the command-line interface.\n"],["Spoonerize::Log","","Spoonerize/Log.html","","<p>Class that handles reading/writing logs.\n"],["Spoonerize::Spoonerism","","Spoonerize/Spoonerism.html","","<p>The main word-flipper.\n"],["all_excluded_words","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-all_excluded_words","()","<p>Returns an array of words to exclude by combining three arrays:\n<p>Any word in the passed arguments that's …\n"],["bump","Spoonerize::Bumper","Spoonerize/Bumper.html#method-i-bump","()","<p>Increments/Decrements the bumper. If on the last element of the words array, sets the bumper to 0. We …\n"],["config_file=","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-config_file-3D","(config_file)","<p>Setter for <code>config_file</code>. Must be expanded in case the user uses `~` for home.\n<p>@param [String] file\n<p>@return …\n"],["config_file_loaded?","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-config_file_loaded-3F","()","<p>Has a config file been loaded?\n<p>@return [Boolean]\n"],["contents","Spoonerize::Log","Spoonerize/Log.html#method-i-contents","()","<p>The contents of the log file.\n<p>@return [Array]\n"],["each","Spoonerize::Log","Spoonerize/Log.html#method-i-each","()","<p>Iterate through each line of the file.\n<p>@return [Array]\n"],["enough_flippable_words?","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-enough_flippable_words-3F","()","<p>Returns true if there are more than one non-excluded word to flip\n"],["execute","Spoonerize::Cli","Spoonerize/Cli.html#method-c-execute","(options = [])","<p>Creates an instance of <code>Spoonerism</code> and runs what the user requested.\n<p>@param [Array] options\n"],["lazy?","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-lazy-3F","()","<p>Should the lazy words be excluded?\n"],["load_config_file","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-load_config_file","()","<p>Loads the config file\n<p>@return [Hash] The config options\n"],["longest_word_length","Spoonerize::Cli","Spoonerize/Cli.html#method-i-longest_word_length","()","<p>The length of the longest word in the phrase.\n<p>@return [Integer]\n"],["map?","Spoonerize::Cli","Spoonerize/Cli.html#method-i-map-3F","()","<p>Should we print the mappings to the command line?\n<p>@return [Boolean]\n"],["new","Spoonerize::Bumper","Spoonerize/Bumper.html#method-c-new","(initial_value, max_value, reverse = false)","<p>Sets the bumper relative to the current index of words array. The value is automatically bumped once …\n"],["new","Spoonerize::Cli","Spoonerize/Cli.html#method-c-new","(options)","<p>Create instance of <code>Cli</code>\n<p>@param [Array] options\n<p>@return [self]\n"],["new","Spoonerize::Log","Spoonerize/Log.html#method-c-new","(file)","<p>Constructor for Log.\n<p>@param [String] file\n<p>@return [Spoonerize::Log]\n"],["new","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-c-new","(words, config_file = nil)","<p>Initialize instance. You can also use the <code>config_file</code> either by passing it at initialization, or via …\n"],["print?","Spoonerize::Cli","Spoonerize/Cli.html#method-i-print-3F","()","<p>Should we print to the command line?\n<p>@return [Boolean]\n"],["print_log","Spoonerize::Cli","Spoonerize/Cli.html#method-i-print_log","()","<p>Print the log file contents to the command line.\n<p>@return [nil]\n"],["print_mappings","Spoonerize::Cli","Spoonerize/Cli.html#method-i-print_mappings","()","<p>Print the hash of mappings to the command line.\n<p>@return [nil]\n"],["reverse?","Spoonerize::Bumper","Spoonerize/Bumper.html#method-i-reverse-3F","()","<p>Should we decrement instead of increment?\n<p>@return [Boolean]\n"],["reverse?","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-reverse-3F","()","<p>Should the words flip the other direction?\n"],["save","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-save","()","<p>Saves the flipped words to the log file, along with the options\n"],["save?","Spoonerize::Cli","Spoonerize/Cli.html#method-i-save-3F","()","<p>Should we save to the log file?\n<p>@return [Boolean]\n"],["size","Spoonerize::Log","Spoonerize/Log.html#method-i-size","()","<p>Number of entries in the file.\n<p>@return [Integer]\n"],["spoonerism","Spoonerize::Cli","Spoonerize/Cli.html#method-i-spoonerism","()","<p>Sets up an instance of <code>Spoonerize::Spoonerism</code> and passes all user preferences.\n<p>@return [Spoonerize::Spoonerism] …\n"],["spoonerize","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-spoonerize","()","<p>Iterates through words array, and maps its elements to the output of flip_words. Returns results as an …\n"],["to_h","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-to_h","()","<p>Returns hash of the original words mapped to their flipped counterparts.\n"],["to_json","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-to_json","()","<p>Same as to_h, but as json.\n"],["to_s","Spoonerize::Spoonerism","Spoonerize/Spoonerism.html#method-i-to_s","()","<p>Returns spoonerize array as a joined string.\n"],["write","Spoonerize::Log","Spoonerize/Log.html#method-i-write","(row)","<p>Writes a line to the log.\n<p>@param [Array] row\n<p>@return [Array]\n"],["README","","README_md.html","","<p>Welcome to Spoonerize – a word game.\n<p><img src=\"https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fevanthegrayt%2Fspoonerize%2Fbadge%3Fref%3Dmaster&style=flat\"> …\n\n<blockquote>"]]}}
|
data/doc/js/search_index.js.gz
DELETED
Binary file
|
data/doc/js/searcher.js
DELETED
@@ -1,229 +0,0 @@
|
|
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 query.split(/(\s+|::?|\(\)?)/).filter(function(string) {
|
55
|
-
return string.match(/\S/);
|
56
|
-
});
|
57
|
-
}
|
58
|
-
|
59
|
-
function buildRegexps(queries) {
|
60
|
-
return queries.map(function(query) {
|
61
|
-
return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i');
|
62
|
-
});
|
63
|
-
}
|
64
|
-
|
65
|
-
function buildHilighters(queries) {
|
66
|
-
return queries.map(function(query) {
|
67
|
-
return query.split('').map(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
|
-
this.handlers.forEach(function(fn) {
|
225
|
-
fn.call(this, results, isLast)
|
226
|
-
});
|
227
|
-
}
|
228
|
-
}
|
229
|
-
|
data/doc/js/searcher.js.gz
DELETED
Binary file
|
data/doc/table_of_contents.html
DELETED
@@ -1,257 +0,0 @@
|
|
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/navigation.js" defer></script>
|
15
|
-
<script src="./js/search.js" defer></script>
|
16
|
-
<script src="./js/search_index.js" defer></script>
|
17
|
-
<script src="./js/searcher.js" defer></script>
|
18
|
-
<script src="./js/darkfish.js" defer></script>
|
19
|
-
|
20
|
-
<link href="./css/fonts.css" rel="stylesheet">
|
21
|
-
<link href="./css/rdoc.css" rel="stylesheet">
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
<body id="top" class="table-of-contents">
|
27
|
-
<main role="main">
|
28
|
-
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
<h2 id="pages">Pages</h2>
|
33
|
-
<ul>
|
34
|
-
|
35
|
-
<li class="file">
|
36
|
-
<a href="README_md.html">README</a>
|
37
|
-
|
38
|
-
<ul>
|
39
|
-
|
40
|
-
<li><a href="README_md.html#label-Welcome+to+Spoonerize+--+a+word+game.">Welcome to Spoonerize – a word game.</a>
|
41
|
-
|
42
|
-
<li><a href="README_md.html#label-About">About</a>
|
43
|
-
|
44
|
-
<li><a href="README_md.html#label-Installation">Installation</a>
|
45
|
-
|
46
|
-
<li><a href="README_md.html#label-Automated">Automated</a>
|
47
|
-
|
48
|
-
<li><a href="README_md.html#label-Manual">Manual</a>
|
49
|
-
|
50
|
-
<li><a href="README_md.html#label-Command+Line+Usage">Command Line Usage</a>
|
51
|
-
|
52
|
-
<li><a href="README_md.html#label-Config+File">Config File</a>
|
53
|
-
|
54
|
-
<li><a href="README_md.html#label-API">API</a>
|
55
|
-
|
56
|
-
<li><a href="README_md.html#label-Self+Promotion">Self Promotion</a>
|
57
|
-
|
58
|
-
</ul>
|
59
|
-
|
60
|
-
</li>
|
61
|
-
|
62
|
-
</ul>
|
63
|
-
|
64
|
-
|
65
|
-
<h2 id="classes">Classes and Modules</h2>
|
66
|
-
<ul>
|
67
|
-
|
68
|
-
<li class="module">
|
69
|
-
<a href="Spoonerize.html">Spoonerize</a>
|
70
|
-
|
71
|
-
</li>
|
72
|
-
|
73
|
-
<li class="class">
|
74
|
-
<a href="Spoonerize/Bumper.html">Spoonerize::Bumper</a>
|
75
|
-
|
76
|
-
</li>
|
77
|
-
|
78
|
-
<li class="class">
|
79
|
-
<a href="Spoonerize/Cli.html">Spoonerize::Cli</a>
|
80
|
-
|
81
|
-
</li>
|
82
|
-
|
83
|
-
<li class="class">
|
84
|
-
<a href="Spoonerize/Log.html">Spoonerize::Log</a>
|
85
|
-
|
86
|
-
</li>
|
87
|
-
|
88
|
-
<li class="class">
|
89
|
-
<a href="Spoonerize/Spoonerism.html">Spoonerize::Spoonerism</a>
|
90
|
-
|
91
|
-
</li>
|
92
|
-
|
93
|
-
</ul>
|
94
|
-
|
95
|
-
<h2 id="methods">Methods</h2>
|
96
|
-
<ul>
|
97
|
-
|
98
|
-
<li class="method">
|
99
|
-
<a href="Spoonerize/Cli.html#method-c-execute">::execute</a>
|
100
|
-
—
|
101
|
-
<span class="container">Spoonerize::Cli</span>
|
102
|
-
|
103
|
-
<li class="method">
|
104
|
-
<a href="Spoonerize/Log.html#method-c-new">::new</a>
|
105
|
-
—
|
106
|
-
<span class="container">Spoonerize::Log</span>
|
107
|
-
|
108
|
-
<li class="method">
|
109
|
-
<a href="Spoonerize/Bumper.html#method-c-new">::new</a>
|
110
|
-
—
|
111
|
-
<span class="container">Spoonerize::Bumper</span>
|
112
|
-
|
113
|
-
<li class="method">
|
114
|
-
<a href="Spoonerize/Spoonerism.html#method-c-new">::new</a>
|
115
|
-
—
|
116
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
117
|
-
|
118
|
-
<li class="method">
|
119
|
-
<a href="Spoonerize/Cli.html#method-c-new">::new</a>
|
120
|
-
—
|
121
|
-
<span class="container">Spoonerize::Cli</span>
|
122
|
-
|
123
|
-
<li class="method">
|
124
|
-
<a href="Spoonerize/Spoonerism.html#method-i-all_excluded_words">#all_excluded_words</a>
|
125
|
-
—
|
126
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
127
|
-
|
128
|
-
<li class="method">
|
129
|
-
<a href="Spoonerize/Bumper.html#method-i-bump">#bump</a>
|
130
|
-
—
|
131
|
-
<span class="container">Spoonerize::Bumper</span>
|
132
|
-
|
133
|
-
<li class="method">
|
134
|
-
<a href="Spoonerize/Spoonerism.html#method-i-config_file-3D">#config_file=</a>
|
135
|
-
—
|
136
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
137
|
-
|
138
|
-
<li class="method">
|
139
|
-
<a href="Spoonerize/Spoonerism.html#method-i-config_file_loaded-3F">#config_file_loaded?</a>
|
140
|
-
—
|
141
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
142
|
-
|
143
|
-
<li class="method">
|
144
|
-
<a href="Spoonerize/Log.html#method-i-contents">#contents</a>
|
145
|
-
—
|
146
|
-
<span class="container">Spoonerize::Log</span>
|
147
|
-
|
148
|
-
<li class="method">
|
149
|
-
<a href="Spoonerize/Log.html#method-i-each">#each</a>
|
150
|
-
—
|
151
|
-
<span class="container">Spoonerize::Log</span>
|
152
|
-
|
153
|
-
<li class="method">
|
154
|
-
<a href="Spoonerize/Spoonerism.html#method-i-enough_flippable_words-3F">#enough_flippable_words?</a>
|
155
|
-
—
|
156
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
157
|
-
|
158
|
-
<li class="method">
|
159
|
-
<a href="Spoonerize/Spoonerism.html#method-i-lazy-3F">#lazy?</a>
|
160
|
-
—
|
161
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
162
|
-
|
163
|
-
<li class="method">
|
164
|
-
<a href="Spoonerize/Spoonerism.html#method-i-load_config_file">#load_config_file</a>
|
165
|
-
—
|
166
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
167
|
-
|
168
|
-
<li class="method">
|
169
|
-
<a href="Spoonerize/Cli.html#method-i-longest_word_length">#longest_word_length</a>
|
170
|
-
—
|
171
|
-
<span class="container">Spoonerize::Cli</span>
|
172
|
-
|
173
|
-
<li class="method">
|
174
|
-
<a href="Spoonerize/Cli.html#method-i-map-3F">#map?</a>
|
175
|
-
—
|
176
|
-
<span class="container">Spoonerize::Cli</span>
|
177
|
-
|
178
|
-
<li class="method">
|
179
|
-
<a href="Spoonerize/Cli.html#method-i-print-3F">#print?</a>
|
180
|
-
—
|
181
|
-
<span class="container">Spoonerize::Cli</span>
|
182
|
-
|
183
|
-
<li class="method">
|
184
|
-
<a href="Spoonerize/Cli.html#method-i-print_log">#print_log</a>
|
185
|
-
—
|
186
|
-
<span class="container">Spoonerize::Cli</span>
|
187
|
-
|
188
|
-
<li class="method">
|
189
|
-
<a href="Spoonerize/Cli.html#method-i-print_mappings">#print_mappings</a>
|
190
|
-
—
|
191
|
-
<span class="container">Spoonerize::Cli</span>
|
192
|
-
|
193
|
-
<li class="method">
|
194
|
-
<a href="Spoonerize/Bumper.html#method-i-reverse-3F">#reverse?</a>
|
195
|
-
—
|
196
|
-
<span class="container">Spoonerize::Bumper</span>
|
197
|
-
|
198
|
-
<li class="method">
|
199
|
-
<a href="Spoonerize/Spoonerism.html#method-i-reverse-3F">#reverse?</a>
|
200
|
-
—
|
201
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
202
|
-
|
203
|
-
<li class="method">
|
204
|
-
<a href="Spoonerize/Spoonerism.html#method-i-save">#save</a>
|
205
|
-
—
|
206
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
207
|
-
|
208
|
-
<li class="method">
|
209
|
-
<a href="Spoonerize/Cli.html#method-i-save-3F">#save?</a>
|
210
|
-
—
|
211
|
-
<span class="container">Spoonerize::Cli</span>
|
212
|
-
|
213
|
-
<li class="method">
|
214
|
-
<a href="Spoonerize/Log.html#method-i-size">#size</a>
|
215
|
-
—
|
216
|
-
<span class="container">Spoonerize::Log</span>
|
217
|
-
|
218
|
-
<li class="method">
|
219
|
-
<a href="Spoonerize/Cli.html#method-i-spoonerism">#spoonerism</a>
|
220
|
-
—
|
221
|
-
<span class="container">Spoonerize::Cli</span>
|
222
|
-
|
223
|
-
<li class="method">
|
224
|
-
<a href="Spoonerize/Spoonerism.html#method-i-spoonerize">#spoonerize</a>
|
225
|
-
—
|
226
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
227
|
-
|
228
|
-
<li class="method">
|
229
|
-
<a href="Spoonerize/Spoonerism.html#method-i-to_h">#to_h</a>
|
230
|
-
—
|
231
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
232
|
-
|
233
|
-
<li class="method">
|
234
|
-
<a href="Spoonerize/Spoonerism.html#method-i-to_json">#to_json</a>
|
235
|
-
—
|
236
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
237
|
-
|
238
|
-
<li class="method">
|
239
|
-
<a href="Spoonerize/Spoonerism.html#method-i-to_s">#to_s</a>
|
240
|
-
—
|
241
|
-
<span class="container">Spoonerize::Spoonerism</span>
|
242
|
-
|
243
|
-
<li class="method">
|
244
|
-
<a href="Spoonerize/Log.html#method-i-write">#write</a>
|
245
|
-
—
|
246
|
-
<span class="container">Spoonerize::Log</span>
|
247
|
-
|
248
|
-
</ul>
|
249
|
-
</main>
|
250
|
-
|
251
|
-
|
252
|
-
<footer id="validator-badges" role="contentinfo">
|
253
|
-
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
254
|
-
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.
|
255
|
-
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
256
|
-
</footer>
|
257
|
-
|