esphinx-rails 1.1.2
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/MIT-LICENSE +20 -0
- data/Rakefile +21 -0
- data/config/environments/production.rb +1 -0
- data/config/environments/staging.rb +1 -0
- data/config/initializers/assets.rb +7 -0
- data/esphinx.gemspec +19 -0
- data/lib/assets/javascripts/esphinx/element.js +256 -0
- data/lib/assets/javascripts/esphinx/event.js +227 -0
- data/lib/assets/javascripts/esphinx/index.js +3 -0
- data/lib/assets/javascripts/esphinx/lib/collection.js +51 -0
- data/lib/assets/javascripts/esphinx/lib/comparable.js +54 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/array.js +541 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/function.js +46 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/index.js +1 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/location.js +111 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/map.js +29 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/number.js +42 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/object.js +502 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/string.js +130 -0
- data/lib/assets/javascripts/esphinx/lib/extensions/x_path_result.js +31 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/flyweight/factory.js +115 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/flyweight/flyweight.js +12 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/iterator.js +332 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/context.js +42 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs/element.js +78 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs/object.js +83 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs.js +19 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/search.js +24 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/search_proxy.js +52 -0
- data/lib/assets/javascripts/esphinx/lib/patterns/index.js +1 -0
- data/lib/assets/javascripts/esphinx/main.js +361 -0
- data/lib/assets/javascripts/esphinx/node.js +276 -0
- data/lib/assets/javascripts/esphinx/properties/forms.js +161 -0
- data/lib/assets/javascripts/esphinx/properties/inputs/text.js +29 -0
- data/lib/assets/javascripts/esphinx/property.js +308 -0
- data/lib/assets/javascripts/esphinx/query.js +347 -0
- data/lib/assets/javascripts/esphinx/samples/sort.js +30 -0
- data/lib/assets/javascripts/esphinx/style.js +342 -0
- data/lib/assets/javascripts/esphinx/util/ajax.js +152 -0
- data/lib/assets/javascripts/esphinx/util/autocomplete.js +356 -0
- data/lib/assets/javascripts/esphinx/util/browser.js +66 -0
- data/lib/assets/javascripts/esphinx/util/cookie.js +167 -0
- data/lib/assets/javascripts/esphinx/util/keyboard.js +110 -0
- data/lib/assets/javascripts/esphinx/util/loader.js +84 -0
- data/lib/assets/javascripts/esphinx/util/observer.js +58 -0
- data/lib/assets/javascripts/esphinx/util/promise.js +127 -0
- data/lib/assets/javascripts/esphinx/util/protector.js +142 -0
- data/lib/assets/javascripts/esphinx/util/range.js +6 -0
- data/lib/assets/javascripts/esphinx/util/scrollbar.js +22 -0
- data/lib/esphinx/rails/engine.rb +7 -0
- data/lib/esphinx/rails/version.rb +5 -0
- data/lib/esphinx-rails.rb +1 -0
- data/vendor/assets/javascripts/jquery-2.2.2.min.js +1 -0
- metadata +99 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
(function($) {
|
5
|
+
"use strict";
|
6
|
+
|
7
|
+
$.extend({
|
8
|
+
|
9
|
+
deleteKeysPattern: function() {
|
10
|
+
var
|
11
|
+
stringPattern = "",
|
12
|
+
|
13
|
+
callback = function(key) {
|
14
|
+
stringPattern += key + "|";
|
15
|
+
};
|
16
|
+
|
17
|
+
["Backspace", "Delete"].forEach(callback);
|
18
|
+
|
19
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
20
|
+
},
|
21
|
+
|
22
|
+
functionKeysPattern: function() {
|
23
|
+
var
|
24
|
+
stringPattern = "",
|
25
|
+
i = 0;
|
26
|
+
|
27
|
+
while (i++ <= 11) {
|
28
|
+
if(i < 12) {
|
29
|
+
stringPattern += "F" + i + "|";
|
30
|
+
} else {
|
31
|
+
stringPattern += "F" + i;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
36
|
+
},
|
37
|
+
|
38
|
+
editKeysPattern: function() {
|
39
|
+
var
|
40
|
+
stringPattern = "",
|
41
|
+
|
42
|
+
callback = function(key) {
|
43
|
+
stringPattern += key + "|";
|
44
|
+
};
|
45
|
+
|
46
|
+
["Enter", "Insert"].forEach(callback);
|
47
|
+
|
48
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
49
|
+
},
|
50
|
+
|
51
|
+
modifierKeysPattern: function() {
|
52
|
+
var
|
53
|
+
stringPattern = "",
|
54
|
+
|
55
|
+
callback = function(key) {
|
56
|
+
stringPattern += key + "|";
|
57
|
+
};
|
58
|
+
|
59
|
+
["Shift", "Control", "Alt", "AltGraph"].forEach(callback);
|
60
|
+
|
61
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
62
|
+
},
|
63
|
+
|
64
|
+
navigationKeysPattern: function() {
|
65
|
+
var
|
66
|
+
stringPattern = "",
|
67
|
+
|
68
|
+
directionalIteratorBlock = function(key) {
|
69
|
+
stringPattern += "Arrow" + key + "|";
|
70
|
+
},
|
71
|
+
|
72
|
+
horizontalDirectionalIteratorBlock = function(key) {
|
73
|
+
stringPattern += "Page" + key + "|";
|
74
|
+
},
|
75
|
+
|
76
|
+
callback = function(key) {
|
77
|
+
stringPattern += key + "|";
|
78
|
+
};
|
79
|
+
|
80
|
+
["Left", "Right", "Up", "Down"].forEach(directionalIteratorBlock);
|
81
|
+
|
82
|
+
["Up", "Down"].forEach(horizontalDirectionalIteratorBlock);
|
83
|
+
|
84
|
+
["Home", "End"].forEach(callback);
|
85
|
+
|
86
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
87
|
+
},
|
88
|
+
|
89
|
+
systemKeysPattern: function() {
|
90
|
+
var
|
91
|
+
stringPattern = "",
|
92
|
+
|
93
|
+
callback = function(key) {
|
94
|
+
stringPattern += key + "|";
|
95
|
+
};
|
96
|
+
|
97
|
+
["Escape", "Pause"].forEach(callback);
|
98
|
+
|
99
|
+
return stringPattern.slice(0, stringPattern.length -1);
|
100
|
+
},
|
101
|
+
|
102
|
+
nonCharacterKeysPattern: function() {
|
103
|
+
return $.systemKeysPattern() + "|" + $.navigationKeysPattern() +
|
104
|
+
"|" + $.modifierKeysPattern() + "|" + $.editKeysPattern() + "|" +
|
105
|
+
$.functionKeysPattern();
|
106
|
+
}
|
107
|
+
|
108
|
+
});
|
109
|
+
|
110
|
+
})(esPhinx);
|
@@ -0,0 +1,84 @@
|
|
1
|
+
// talvez o problema possa ser resolvido com funções assíncronas. Da atual forma não funciona porque linha por linha do arquivo é carregada sem que o outro arquivo chamado por getScript esteja carregado.
|
2
|
+
|
3
|
+
var
|
4
|
+
esPhinx;
|
5
|
+
|
6
|
+
|
7
|
+
(function($) {
|
8
|
+
"use strict";
|
9
|
+
|
10
|
+
// var
|
11
|
+
// // aparentemente não será necessário
|
12
|
+
// promises = [],
|
13
|
+
|
14
|
+
// promise = function(src) {
|
15
|
+
// if (promises.indexOf(src) < 0) {
|
16
|
+
// promises.unshift(src);
|
17
|
+
// }
|
18
|
+
// };
|
19
|
+
|
20
|
+
|
21
|
+
$.extend({
|
22
|
+
|
23
|
+
config: {
|
24
|
+
rootPath: "/",
|
25
|
+
loadPath: []
|
26
|
+
},
|
27
|
+
|
28
|
+
getScript: function(src) {
|
29
|
+
var
|
30
|
+
// script,
|
31
|
+
first = $("script").first(),
|
32
|
+
|
33
|
+
// resetLoadPath = function() {
|
34
|
+
// $.config.loadPath = [];
|
35
|
+
// },
|
36
|
+
|
37
|
+
resolvePath = function(path) {
|
38
|
+
return path.replace(/^\/*/, "/").replace(/\/+$/, "");
|
39
|
+
},
|
40
|
+
|
41
|
+
joinPaths = function(names) {
|
42
|
+
var
|
43
|
+
path = "",
|
44
|
+
args = Array.from(arguments),
|
45
|
+
|
46
|
+
callback = function(v) {
|
47
|
+
path += resolvePath(v);
|
48
|
+
};
|
49
|
+
|
50
|
+
args.forEach(callback);
|
51
|
+
|
52
|
+
return path;
|
53
|
+
},
|
54
|
+
|
55
|
+
withoutExtension = function(src) {
|
56
|
+
return src.replace(/(\..*)/, "");
|
57
|
+
},
|
58
|
+
|
59
|
+
resolveSrc = function(src) {
|
60
|
+
if (src.match(/(\.js)$/i)) {
|
61
|
+
return src;
|
62
|
+
}
|
63
|
+
|
64
|
+
return src + ".js";
|
65
|
+
};
|
66
|
+
|
67
|
+
// o loadPath pode ser iterado para fazer a verificação
|
68
|
+
src = joinPaths($.config.rootPath, withoutExtension(src));
|
69
|
+
|
70
|
+
// debugger
|
71
|
+
if (!$("script[src^=\"" + src + "\"]").some()) {
|
72
|
+
// debugger
|
73
|
+
$("<script></script>")
|
74
|
+
// resolver com options
|
75
|
+
// .attribute("defer", "defer")
|
76
|
+
.attribute("async", "async")
|
77
|
+
.attribute("src", resolveSrc(src))
|
78
|
+
.insertBefore(first);
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
});
|
83
|
+
|
84
|
+
}(esPhinx));
|
@@ -0,0 +1,58 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
$.prototype.extend({
|
9
|
+
|
10
|
+
observe: function(options, callback) {
|
11
|
+
var
|
12
|
+
observer,
|
13
|
+
|
14
|
+
block = function(mutations) {
|
15
|
+
callback.call(observer, mutations);
|
16
|
+
},
|
17
|
+
|
18
|
+
iteratorBlock = function(node) {
|
19
|
+
observer = new window.MutationObserver(block);
|
20
|
+
|
21
|
+
observer.observe(node, options);
|
22
|
+
};
|
23
|
+
|
24
|
+
if (!callback && typeof options == "function") {
|
25
|
+
callback = options;
|
26
|
+
}
|
27
|
+
|
28
|
+
if (options) {
|
29
|
+
if (!options.childList ||
|
30
|
+
typeof options.childList != "boolean") {
|
31
|
+
options.childList = true;
|
32
|
+
}
|
33
|
+
|
34
|
+
if (!options.subtree ||
|
35
|
+
typeof options.subtree != "boolean") {
|
36
|
+
options.subtree = true;
|
37
|
+
}
|
38
|
+
|
39
|
+
if (!options.characterData ||
|
40
|
+
typeof options.characterData != "boolean") {
|
41
|
+
options.characterData = true;
|
42
|
+
}
|
43
|
+
|
44
|
+
// if (!options.attributes ||
|
45
|
+
// typeof options.attributes != "boolean") {
|
46
|
+
// options.attributes = false;
|
47
|
+
// }
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
this.each(iteratorBlock);
|
52
|
+
|
53
|
+
return this;
|
54
|
+
}
|
55
|
+
|
56
|
+
});
|
57
|
+
|
58
|
+
}(esPhinx));
|
@@ -0,0 +1,127 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
$.extend({
|
9
|
+
Promise: {}
|
10
|
+
});
|
11
|
+
|
12
|
+
$.Extender.extend($.Promise, true, {
|
13
|
+
new: function(options, callbackUntil) {
|
14
|
+
var
|
15
|
+
_accomplishResponse,
|
16
|
+
_reject,
|
17
|
+
whenReject,
|
18
|
+
status,
|
19
|
+
promise,
|
20
|
+
currentTimeout,
|
21
|
+
self = this,
|
22
|
+
ConstructorReference = $.Promise.new,
|
23
|
+
|
24
|
+
resolveArguments = function() {
|
25
|
+
if (typeof options == "function") {
|
26
|
+
callbackUntil = options;
|
27
|
+
options = {};
|
28
|
+
}
|
29
|
+
|
30
|
+
if (typeof options.onAccomplish != "function") {
|
31
|
+
options.onAccomplish = function() {};
|
32
|
+
}
|
33
|
+
},
|
34
|
+
|
35
|
+
accomplish = function(response) {
|
36
|
+
// "fulfilled"
|
37
|
+
status = "resolved";
|
38
|
+
_accomplishResponse = response;
|
39
|
+
},
|
40
|
+
|
41
|
+
start = function(callbackUntil, options) {
|
42
|
+
if (typeof options.defer != "number") {
|
43
|
+
options.defer = 0;
|
44
|
+
}
|
45
|
+
|
46
|
+
var
|
47
|
+
loop = function(_accomplish, _reject, callbackUntil,
|
48
|
+
options) {
|
49
|
+
|
50
|
+
currentTimeout = window.setTimeout(function() {
|
51
|
+
if (typeof callbackUntil != "function" ||
|
52
|
+
(options.defer &&
|
53
|
+
typeof callbackUntil != "function")) {
|
54
|
+
_accomplish();
|
55
|
+
} else {
|
56
|
+
options.defer = 0;
|
57
|
+
callbackUntil.call(self, accomplish);
|
58
|
+
// returns the control for the user
|
59
|
+
switch (status) {
|
60
|
+
case "resolved": {
|
61
|
+
_accomplish(_accomplishResponse);
|
62
|
+
}
|
63
|
+
break;
|
64
|
+
default: {
|
65
|
+
loop(_accomplish, _reject,
|
66
|
+
callbackUntil, options);}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}, options.defer);
|
70
|
+
};
|
71
|
+
|
72
|
+
promise = new Promise(function(_accomplish, reject) {
|
73
|
+
_reject = reject;
|
74
|
+
loop(_accomplish, reject, callbackUntil, options);
|
75
|
+
});
|
76
|
+
|
77
|
+
promise.then(
|
78
|
+
// response comes from original Promise object
|
79
|
+
function(r) {
|
80
|
+
options.onAccomplish(r);
|
81
|
+
},
|
82
|
+
|
83
|
+
function() {
|
84
|
+
whenReject();
|
85
|
+
}
|
86
|
+
);
|
87
|
+
};
|
88
|
+
|
89
|
+
if (!(this instanceof ConstructorReference)) {
|
90
|
+
return new ConstructorReference(options, callbackUntil);
|
91
|
+
}
|
92
|
+
|
93
|
+
resolveArguments(callbackUntil, options);
|
94
|
+
|
95
|
+
start(callbackUntil, options);
|
96
|
+
|
97
|
+
this.origin = function() {
|
98
|
+
// to work with async functions
|
99
|
+
return promise;
|
100
|
+
};
|
101
|
+
|
102
|
+
this.break = function(run) {
|
103
|
+
if (typeof run != "function") {
|
104
|
+
run = function(){};
|
105
|
+
}
|
106
|
+
|
107
|
+
whenReject = run;
|
108
|
+
|
109
|
+
clearTimeout(currentTimeout);
|
110
|
+
_reject();
|
111
|
+
};
|
112
|
+
|
113
|
+
this.catchException = function(run) {
|
114
|
+
if (typeof run != "function") {
|
115
|
+
run = function(){};
|
116
|
+
}
|
117
|
+
|
118
|
+
promise.catch(run);
|
119
|
+
|
120
|
+
return this;
|
121
|
+
};
|
122
|
+
|
123
|
+
return this;
|
124
|
+
}
|
125
|
+
});
|
126
|
+
|
127
|
+
})(esPhinx);
|
@@ -0,0 +1,142 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
var
|
9
|
+
_options,
|
10
|
+
_eventCollector,
|
11
|
+
|
12
|
+
isDeleteKey = function(e) {
|
13
|
+
switch (e.key) {
|
14
|
+
case "Backspace":
|
15
|
+
return true;
|
16
|
+
|
17
|
+
case "Delete":
|
18
|
+
return true;
|
19
|
+
}
|
20
|
+
|
21
|
+
return false;
|
22
|
+
},
|
23
|
+
|
24
|
+
listener = function(e) {
|
25
|
+
if (typeof _eventCollector == "function") {
|
26
|
+
_eventCollector(e);
|
27
|
+
}
|
28
|
+
|
29
|
+
var
|
30
|
+
i;
|
31
|
+
|
32
|
+
if (_options) {
|
33
|
+
if (_options.acceptDelete == true) {
|
34
|
+
if (isDeleteKey(e)) {
|
35
|
+
return false;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
if (_options.exceptions) {
|
40
|
+
if (isDeleteKey(e)) {
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
|
44
|
+
if (_options.exceptions
|
45
|
+
.test(e.key)) {
|
46
|
+
return false;
|
47
|
+
}
|
48
|
+
if (e.shiftKey) {
|
49
|
+
return false;
|
50
|
+
}
|
51
|
+
} else {
|
52
|
+
if (e.shiftKey) {
|
53
|
+
switch (e.key) {
|
54
|
+
case ("Insert"):
|
55
|
+
return false;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
for (i = 1; i <= 12; i++) {
|
62
|
+
if (e.key == ("F" + i)) {
|
63
|
+
return false;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
switch (e.key) {
|
68
|
+
case "ArrowLeft":
|
69
|
+
return false;
|
70
|
+
|
71
|
+
case "ArrowRight":
|
72
|
+
return false;
|
73
|
+
|
74
|
+
case "ArrowUp":
|
75
|
+
return false;
|
76
|
+
|
77
|
+
case "ArrowDown":
|
78
|
+
return false;
|
79
|
+
}
|
80
|
+
|
81
|
+
switch (e.key) {
|
82
|
+
case "Home":
|
83
|
+
return false;
|
84
|
+
|
85
|
+
case "End":
|
86
|
+
return false;
|
87
|
+
|
88
|
+
case "PageUp":
|
89
|
+
return false;
|
90
|
+
|
91
|
+
case "PageDown":
|
92
|
+
return false;
|
93
|
+
|
94
|
+
case "AltGraph":
|
95
|
+
return false;
|
96
|
+
|
97
|
+
case "Enter":
|
98
|
+
return false;
|
99
|
+
}
|
100
|
+
|
101
|
+
if (e.ctrlKey) {
|
102
|
+
switch (e.key) {
|
103
|
+
case "a":
|
104
|
+
return false;
|
105
|
+
|
106
|
+
case "c":
|
107
|
+
return false;
|
108
|
+
|
109
|
+
case "v":
|
110
|
+
return false;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
e.preventDefault();
|
115
|
+
};
|
116
|
+
|
117
|
+
$.prototype.extend(true, {
|
118
|
+
|
119
|
+
preventKeys: function(options, eventCollector) {
|
120
|
+
_options = options || {};
|
121
|
+
_eventCollector = eventCollector;
|
122
|
+
|
123
|
+
var
|
124
|
+
callback = function(node) {
|
125
|
+
node.removeEventListener("keydown", listener,
|
126
|
+
(_options.capture || false)
|
127
|
+
);
|
128
|
+
|
129
|
+
node.addEventListener("keydown", listener,
|
130
|
+
(_options.capture || false)
|
131
|
+
);
|
132
|
+
|
133
|
+
};
|
134
|
+
|
135
|
+
this.each(callback);
|
136
|
+
|
137
|
+
return this;
|
138
|
+
}
|
139
|
+
|
140
|
+
});
|
141
|
+
|
142
|
+
}(esPhinx));
|