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,276 @@
|
|
1
|
+
var
|
2
|
+
esPhinx,
|
3
|
+
Iterable;
|
4
|
+
|
5
|
+
|
6
|
+
(function($) {
|
7
|
+
"use strict";
|
8
|
+
|
9
|
+
$.extend({
|
10
|
+
text: function(text) {
|
11
|
+
return $(window.document.createTextNode(text));
|
12
|
+
}
|
13
|
+
});
|
14
|
+
|
15
|
+
$.prototype.extend({
|
16
|
+
|
17
|
+
// <br>|<br\/>
|
18
|
+
// text: function() {
|
19
|
+
// },
|
20
|
+
|
21
|
+
insertAfter: function(element) {
|
22
|
+
var
|
23
|
+
elements = $(element),
|
24
|
+
|
25
|
+
callback = function(element2Insert) {
|
26
|
+
var
|
27
|
+
iteratorBlock = function(element) {
|
28
|
+
// element = $(element);
|
29
|
+
// sibling = element.next();
|
30
|
+
// debugger
|
31
|
+
// if (sibling.some()) {
|
32
|
+
// $(element).insertBefore(sibling);
|
33
|
+
// } else {
|
34
|
+
// element.parent().append(element);
|
35
|
+
// }
|
36
|
+
element.parentNode.insertBefore(element2Insert,
|
37
|
+
element.nextSibling);
|
38
|
+
};
|
39
|
+
|
40
|
+
elements.each(iteratorBlock);
|
41
|
+
};
|
42
|
+
|
43
|
+
this.each(callback);
|
44
|
+
|
45
|
+
return this;
|
46
|
+
},
|
47
|
+
|
48
|
+
insertBefore: function(element) {
|
49
|
+
var
|
50
|
+
elements = $(element),
|
51
|
+
|
52
|
+
callback = function(element2Insert) {
|
53
|
+
var
|
54
|
+
iteratorBlock = function(element) {
|
55
|
+
element.parentNode.insertBefore(element2Insert, element);
|
56
|
+
};
|
57
|
+
|
58
|
+
elements.each(iteratorBlock);
|
59
|
+
};
|
60
|
+
|
61
|
+
this.each(callback);
|
62
|
+
|
63
|
+
return this;
|
64
|
+
},
|
65
|
+
|
66
|
+
append: function(node) {
|
67
|
+
var
|
68
|
+
nodes,
|
69
|
+
|
70
|
+
callback = function(element) {
|
71
|
+
var
|
72
|
+
iteratorBlock = function(node) {
|
73
|
+
element.appendChild(node);
|
74
|
+
};
|
75
|
+
|
76
|
+
nodes.each(iteratorBlock);
|
77
|
+
};
|
78
|
+
|
79
|
+
nodes = $(node);
|
80
|
+
if (nodes.empty()) {
|
81
|
+
nodes = $(window.document.createTextNode(node));
|
82
|
+
}
|
83
|
+
|
84
|
+
this.each(callback);
|
85
|
+
|
86
|
+
return this;
|
87
|
+
},
|
88
|
+
|
89
|
+
prepend: function(node) {
|
90
|
+
var
|
91
|
+
firstNode,
|
92
|
+
|
93
|
+
callback = function(element) {
|
94
|
+
firstNode = $(element).firstNode();
|
95
|
+
if (firstNode.some()) {
|
96
|
+
node.insertBefore(firstNode);
|
97
|
+
} else {
|
98
|
+
$(element).append(node);
|
99
|
+
}
|
100
|
+
};
|
101
|
+
|
102
|
+
node = $(node);
|
103
|
+
if (node.empty()) {
|
104
|
+
node = $(window.document.createTextNode(node));
|
105
|
+
}
|
106
|
+
|
107
|
+
this.each(callback);
|
108
|
+
|
109
|
+
return this;
|
110
|
+
},
|
111
|
+
|
112
|
+
textContent: function() {
|
113
|
+
var
|
114
|
+
tagName = this.tagName(),
|
115
|
+
node = this.asNode();
|
116
|
+
|
117
|
+
if (tagName != "pre") {
|
118
|
+
return node.textContent.replace(/\n[ \t]*/g, "")
|
119
|
+
.replace(/(\n){2,}/g, "");
|
120
|
+
}
|
121
|
+
|
122
|
+
return node.textContent;
|
123
|
+
},
|
124
|
+
|
125
|
+
// "extends?" would make more sense in the relationship between classes
|
126
|
+
isA: function(constructor) {
|
127
|
+
return this.asNode() instanceof constructor;
|
128
|
+
},
|
129
|
+
|
130
|
+
// remove: function(object, delay = 0) {
|
131
|
+
remove: function(object, delay) {
|
132
|
+
if (typeof delay != "number") {delay = 0;}
|
133
|
+
|
134
|
+
var
|
135
|
+
self = this,
|
136
|
+
|
137
|
+
remove = function(element) {
|
138
|
+
element.remove();
|
139
|
+
},
|
140
|
+
|
141
|
+
resolveArguments = function() {
|
142
|
+
if (typeof object == "number") {
|
143
|
+
delay = object;
|
144
|
+
object = undefined;
|
145
|
+
} else if (typeof delay != "number") {
|
146
|
+
delay = 0;
|
147
|
+
}
|
148
|
+
};
|
149
|
+
|
150
|
+
resolveArguments();
|
151
|
+
|
152
|
+
if (object) {
|
153
|
+
// recursivity
|
154
|
+
$(object).remove(delay);
|
155
|
+
} else {
|
156
|
+
if (delay) {
|
157
|
+
window.setTimeout(function() {
|
158
|
+
self.each(remove);
|
159
|
+
}, delay);
|
160
|
+
} else {
|
161
|
+
self.each(remove);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
return self;
|
167
|
+
},
|
168
|
+
|
169
|
+
clean: function() {
|
170
|
+
var
|
171
|
+
callback = function(element) {
|
172
|
+
element.innerHTML = null;
|
173
|
+
};
|
174
|
+
|
175
|
+
this.each(callback);
|
176
|
+
|
177
|
+
return this;
|
178
|
+
},
|
179
|
+
|
180
|
+
hasClass: function(classList) {
|
181
|
+
var
|
182
|
+
element = $(this.asNode()),
|
183
|
+
pattern;
|
184
|
+
|
185
|
+
if (arguments.length > 1) {
|
186
|
+
classList = Array.from(arguments);
|
187
|
+
pattern = new RegExp("(?=.*(\\b" + classList
|
188
|
+
.join("(?=(\\b| ))))(?=.*(\\b") +
|
189
|
+
"(?=(\\b| )))).*", "g");
|
190
|
+
} else {
|
191
|
+
pattern = new RegExp("(?=.*(\\b" + classList.split(" ")
|
192
|
+
.join("(?=(\\b| ))))(?=.*(\\b") +
|
193
|
+
"(?=(\\b| )))).*", "g");
|
194
|
+
}
|
195
|
+
|
196
|
+
return pattern.test(element.attribute("class"));
|
197
|
+
},
|
198
|
+
|
199
|
+
is: function(comparedNode) {
|
200
|
+
var
|
201
|
+
asIterable,
|
202
|
+
comparedAsIterable,
|
203
|
+
asIterableIterator,
|
204
|
+
comparedAsIterableIterator,
|
205
|
+
response = false,
|
206
|
+
|
207
|
+
callback = function(node) {
|
208
|
+
var
|
209
|
+
iteratorBlock = function(compared) {
|
210
|
+
if (node.isEqualNode(compared)) {
|
211
|
+
response = true;
|
212
|
+
this.finalize();
|
213
|
+
asIterableIterator.finalize();
|
214
|
+
}
|
215
|
+
};
|
216
|
+
|
217
|
+
if (comparedNode.some()) {
|
218
|
+
comparedAsIterable = Array.from(comparedNode);
|
219
|
+
comparedAsIterableIterator = Iterable.Proxy
|
220
|
+
.new(comparedAsIterable);
|
221
|
+
comparedAsIterableIterator
|
222
|
+
.each(iteratorBlock);
|
223
|
+
}
|
224
|
+
};
|
225
|
+
|
226
|
+
if (Object.hasSameClass(comparedNode, this) ||
|
227
|
+
typeof comparedNode == "string" ||
|
228
|
+
comparedNode instanceof window.Node ||
|
229
|
+
comparedNode instanceof Array) {
|
230
|
+
comparedNode = $(comparedNode);
|
231
|
+
}
|
232
|
+
|
233
|
+
if (this.some()) {
|
234
|
+
asIterable = this.asArray();
|
235
|
+
|
236
|
+
asIterableIterator = Iterable.Proxy.new(asIterable);
|
237
|
+
asIterableIterator.each(callback);
|
238
|
+
}
|
239
|
+
|
240
|
+
return response;
|
241
|
+
}
|
242
|
+
|
243
|
+
});
|
244
|
+
|
245
|
+
}(esPhinx));
|
246
|
+
|
247
|
+
/*$.prototype.ancestors = function(nodeName) {
|
248
|
+
var _parents = []
|
249
|
+
,parent = null
|
250
|
+
;
|
251
|
+
collection.forEach(function(e) {
|
252
|
+
parent = e.parentNode;
|
253
|
+
if (nodeName) {
|
254
|
+
if (parent.nodeName.toLowerCase() == nodeName) {
|
255
|
+
_parents.push(parent);
|
256
|
+
} else {
|
257
|
+
while (true) {
|
258
|
+
parent = parent.parentNode;
|
259
|
+
if(parent){
|
260
|
+
if(parent.nodeName.toLowerCase() == nodeName) {
|
261
|
+
_parents.push(parent);
|
262
|
+
break;
|
263
|
+
}
|
264
|
+
} else {
|
265
|
+
break;
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}
|
269
|
+
} else {
|
270
|
+
if(parent){
|
271
|
+
_parents.push(parent);
|
272
|
+
}
|
273
|
+
}
|
274
|
+
});
|
275
|
+
return _parents;
|
276
|
+
}*/
|
@@ -0,0 +1,161 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
|
9
|
+
$.prototype.extend({
|
10
|
+
|
11
|
+
// params: function () {
|
12
|
+
// var
|
13
|
+
// resolvedParams = {},
|
14
|
+
// // numbersOnlyPattern = /^[0-9]+(?!.)/,
|
15
|
+
// trailPattern = /^[^[]+|[^[]+(?=\])/g,
|
16
|
+
// // trailWithoutIndexPattern = /^[^[]+|(?![0-9])[^[]+(?=\])/g,
|
17
|
+
// count,
|
18
|
+
// trail,
|
19
|
+
// trailWithoutIndex,
|
20
|
+
// //objectName,
|
21
|
+
// //nestedObjectName,
|
22
|
+
// index,
|
23
|
+
// name,
|
24
|
+
// param,
|
25
|
+
// key,
|
26
|
+
// //merged,
|
27
|
+
// attr,
|
28
|
+
// nested_attr,
|
29
|
+
// attributeName,
|
30
|
+
|
31
|
+
// resolveParam = function (name, value) {
|
32
|
+
// value = value || "";
|
33
|
+
|
34
|
+
// var
|
35
|
+
// structure = name,
|
36
|
+
// parsed;
|
37
|
+
|
38
|
+
// index = structure.split(/\[([0-9]+)/)[1];
|
39
|
+
|
40
|
+
// structure = "{\"" + structure;
|
41
|
+
// // object[nested_object][0-9+][indexed_attr_collection_type][]
|
42
|
+
// if (/.+\[.+\]\[[0-9]+\]\[.+\]\[\](?!.)/.test(name)) {
|
43
|
+
// structure = structure
|
44
|
+
// .replace(/(\]\[(?=.)(?!\]))|(\[(?!\]))/g,
|
45
|
+
// "\":{\"").replace(/(\]\[\])$/, "\":[\"" + value +
|
46
|
+
// "\"]}}}}");
|
47
|
+
// // obj[nested_object][][attr_collection_type][]
|
48
|
+
// } else if (/.+\[.+\]\[\]\[.+\]\[\](?!.)/.test(name)) {
|
49
|
+
// structure = structure
|
50
|
+
// .replace(/\]\[\]\[/, "\":[{\"")
|
51
|
+
// .replace(/\[(?![\{\]])/, "\":{\"")
|
52
|
+
// .replace(/\]\[\]/, "\":[\"" + value +
|
53
|
+
// "\"]}]}}");
|
54
|
+
// // below the two more used
|
55
|
+
// // obj[nested_object][0-9+][indexed_attr]
|
56
|
+
// } else if (/.+\[.+\]\[[0-9]+\]\[.+\](?!.)/.test(name)) {
|
57
|
+
// structure = structure
|
58
|
+
// .replace(/\]\[(?=.)(?!\])|\[(?!\])/g, "\":{\"")
|
59
|
+
// .replace(/\]$/, "\":\"" + value + "\"}}}}");
|
60
|
+
// // obj[nested_object][][attr]
|
61
|
+
// } else if (/.+\[.+\]\[\]\[.+\](?!.)/.test(name)) {
|
62
|
+
// structure = structure
|
63
|
+
// .replace(/\]\[\]\[/, "\":[{\"")
|
64
|
+
// .replace(/\[(?![\{])/g, "\":{\"")
|
65
|
+
// .replace(/\]$/g, "\":\"" + value + "\"}]}}");
|
66
|
+
// // indexed_attr_collection_type[0-9+][]
|
67
|
+
// } else if (/.+\[[0-9]+\]\[\](?!.)/.test(name)) {
|
68
|
+
// structure = structure
|
69
|
+
// .replace(/(\]\[(?=.)(?!\]))|(\[(?!\]))/g,
|
70
|
+
// "\":{\"").replace(/\]\[\]/, "\":[\"" + value +
|
71
|
+
// "\"]}}");
|
72
|
+
// // obj[attr_collection_type][]
|
73
|
+
// } else if (/.+\[.+\]\[\](?!.)/.test(name)) {
|
74
|
+
// structure = structure
|
75
|
+
// .replace(/\]\[/, "\":[\"")
|
76
|
+
// .replace(/\[(?!\")/g, "\":{\"")
|
77
|
+
// .replace(/\]$/g, value + "\"]}}");
|
78
|
+
// // obj[attr]
|
79
|
+
// } else if (/.+\[.+\](?!.)/.test(name)) {
|
80
|
+
// structure = structure
|
81
|
+
// .replace(/\[/, "\":{\"")
|
82
|
+
// .replace(/\]$/, "\":\"" + value + "\"}}");
|
83
|
+
// // attr_collection_type[]
|
84
|
+
// } else if (/.+\[\](?!.)/.test(name)) {
|
85
|
+
// structure = structure
|
86
|
+
// .replace(/\[\]/, "\":[\"" + value + "\"]}");
|
87
|
+
// // attr
|
88
|
+
// } else {
|
89
|
+
// structure += "\":\"" + value + "\"}";
|
90
|
+
// }
|
91
|
+
|
92
|
+
// parsed = JSON.parse(structure);
|
93
|
+
// if (parsed) {
|
94
|
+
// return parsed;
|
95
|
+
// }
|
96
|
+
// return false;
|
97
|
+
// };
|
98
|
+
|
99
|
+
// // debugger
|
100
|
+
|
101
|
+
// // to adapt to:
|
102
|
+
// // obj[nested_attr][0-9+][indexed_attr_collection_type][]
|
103
|
+
// // obj[nested_attr][][attr_collection_type][]
|
104
|
+
// // obj[attr_collection_type][]
|
105
|
+
// // attr_collection_type[]
|
106
|
+
// this.each(function (form) {
|
107
|
+
// if (form instanceof HTMLFormElement) {
|
108
|
+
// $.each(form.elements, function (e, i) {
|
109
|
+
// name = e.name;
|
110
|
+
// if (name) {
|
111
|
+
|
112
|
+
// count = name.match(trailPattern).length;
|
113
|
+
|
114
|
+
// if (trailWithoutIndex.length === 1) {
|
115
|
+
// attributeName = trail.first();
|
116
|
+
// }
|
117
|
+
|
118
|
+
// param = resolveParam(e.name, e.value);
|
119
|
+
// if (param) {
|
120
|
+
// key = Object.keys(param)[0];
|
121
|
+
// if (resolvedParams[key]) {
|
122
|
+
// // talvez seja interessante iterar usando Iterator.each e ir verificando o tipo de objeto que está sendo retornado pelo iterador
|
123
|
+
// attr = Object.keys(param[key])[0];
|
124
|
+
// if (resolvedParams[key][attr] instanceof
|
125
|
+
// Array) {
|
126
|
+
|
127
|
+
// index = Object
|
128
|
+
// .keys(resolvedParams[key][attr])
|
129
|
+
// .last();
|
130
|
+
|
131
|
+
// nested_attr = Object
|
132
|
+
// .keys(param[key][attr][0])[0];
|
133
|
+
|
134
|
+
// if (resolvedParams[key][attr][index][nested_attr]) {
|
135
|
+
// param[key][attr] = resolvedParams[key][attr]
|
136
|
+
// .concat(param[key][attr]);
|
137
|
+
// } else {
|
138
|
+
// resolvedParams[key][attr][index] = Object.merge(resolvedParams[key][attr][index], param[key][attr][0]);
|
139
|
+
// param[key][attr] = resolvedParams[key][attr];
|
140
|
+
// }
|
141
|
+
// } else if (resolvedParams[key]
|
142
|
+
// [attr] instanceof Object) {
|
143
|
+
// param[key][attr][index] = $.Object.merge(resolvedParams[key][attr][index], param[key][attr][index]);
|
144
|
+
// param[key][attr] = $.Object.merge(resolvedParams[key][attr], param[key][attr]);
|
145
|
+
// }
|
146
|
+
// param[key] = Object
|
147
|
+
// .merge(resolvedParams[key], param[key]);
|
148
|
+
// }
|
149
|
+
// resolvedParams = $.Object.merge(resolvedParams, param);
|
150
|
+
// }
|
151
|
+
// }
|
152
|
+
// });
|
153
|
+
// }
|
154
|
+
// });
|
155
|
+
|
156
|
+
// return resolvedParams;
|
157
|
+
// }
|
158
|
+
|
159
|
+
});
|
160
|
+
|
161
|
+
}(esPhinx));
|
@@ -0,0 +1,29 @@
|
|
1
|
+
var
|
2
|
+
esPhinx;
|
3
|
+
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
|
9
|
+
$.prototype.extend({
|
10
|
+
|
11
|
+
selectionStart: function() {
|
12
|
+
if (this.isA(window.HTMLInputElement)) {
|
13
|
+
return this.asNode().selectionStart;
|
14
|
+
}
|
15
|
+
},
|
16
|
+
|
17
|
+
selectionEnd: function() {
|
18
|
+
if (this.isA(window.HTMLInputElement)) {
|
19
|
+
return this.asNode().selectionEnd;
|
20
|
+
}
|
21
|
+
},
|
22
|
+
|
23
|
+
cursorPosition: function() {
|
24
|
+
return this.selectionStart();
|
25
|
+
}
|
26
|
+
|
27
|
+
});
|
28
|
+
|
29
|
+
}(esPhinx));
|