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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +21 -0
  4. data/config/environments/production.rb +1 -0
  5. data/config/environments/staging.rb +1 -0
  6. data/config/initializers/assets.rb +7 -0
  7. data/esphinx.gemspec +19 -0
  8. data/lib/assets/javascripts/esphinx/element.js +256 -0
  9. data/lib/assets/javascripts/esphinx/event.js +227 -0
  10. data/lib/assets/javascripts/esphinx/index.js +3 -0
  11. data/lib/assets/javascripts/esphinx/lib/collection.js +51 -0
  12. data/lib/assets/javascripts/esphinx/lib/comparable.js +54 -0
  13. data/lib/assets/javascripts/esphinx/lib/extensions/array.js +541 -0
  14. data/lib/assets/javascripts/esphinx/lib/extensions/function.js +46 -0
  15. data/lib/assets/javascripts/esphinx/lib/extensions/index.js +1 -0
  16. data/lib/assets/javascripts/esphinx/lib/extensions/location.js +111 -0
  17. data/lib/assets/javascripts/esphinx/lib/extensions/map.js +29 -0
  18. data/lib/assets/javascripts/esphinx/lib/extensions/number.js +42 -0
  19. data/lib/assets/javascripts/esphinx/lib/extensions/object.js +502 -0
  20. data/lib/assets/javascripts/esphinx/lib/extensions/string.js +130 -0
  21. data/lib/assets/javascripts/esphinx/lib/extensions/x_path_result.js +31 -0
  22. data/lib/assets/javascripts/esphinx/lib/patterns/gof/flyweight/factory.js +115 -0
  23. data/lib/assets/javascripts/esphinx/lib/patterns/gof/flyweight/flyweight.js +12 -0
  24. data/lib/assets/javascripts/esphinx/lib/patterns/gof/iterator.js +332 -0
  25. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/context.js +42 -0
  26. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs/element.js +78 -0
  27. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs/object.js +83 -0
  28. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/graphs/bfs.js +19 -0
  29. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/search.js +24 -0
  30. data/lib/assets/javascripts/esphinx/lib/patterns/gof/strategies/search/search_proxy.js +52 -0
  31. data/lib/assets/javascripts/esphinx/lib/patterns/index.js +1 -0
  32. data/lib/assets/javascripts/esphinx/main.js +361 -0
  33. data/lib/assets/javascripts/esphinx/node.js +276 -0
  34. data/lib/assets/javascripts/esphinx/properties/forms.js +161 -0
  35. data/lib/assets/javascripts/esphinx/properties/inputs/text.js +29 -0
  36. data/lib/assets/javascripts/esphinx/property.js +308 -0
  37. data/lib/assets/javascripts/esphinx/query.js +347 -0
  38. data/lib/assets/javascripts/esphinx/samples/sort.js +30 -0
  39. data/lib/assets/javascripts/esphinx/style.js +342 -0
  40. data/lib/assets/javascripts/esphinx/util/ajax.js +152 -0
  41. data/lib/assets/javascripts/esphinx/util/autocomplete.js +356 -0
  42. data/lib/assets/javascripts/esphinx/util/browser.js +66 -0
  43. data/lib/assets/javascripts/esphinx/util/cookie.js +167 -0
  44. data/lib/assets/javascripts/esphinx/util/keyboard.js +110 -0
  45. data/lib/assets/javascripts/esphinx/util/loader.js +84 -0
  46. data/lib/assets/javascripts/esphinx/util/observer.js +58 -0
  47. data/lib/assets/javascripts/esphinx/util/promise.js +127 -0
  48. data/lib/assets/javascripts/esphinx/util/protector.js +142 -0
  49. data/lib/assets/javascripts/esphinx/util/range.js +6 -0
  50. data/lib/assets/javascripts/esphinx/util/scrollbar.js +22 -0
  51. data/lib/esphinx/rails/engine.rb +7 -0
  52. data/lib/esphinx/rails/version.rb +5 -0
  53. data/lib/esphinx-rails.rb +1 -0
  54. data/vendor/assets/javascripts/jquery-2.2.2.min.js +1 -0
  55. metadata +99 -0
@@ -0,0 +1,308 @@
1
+ var
2
+ esPhinx,
3
+ Iterable;
4
+
5
+
6
+ (function($) {
7
+ "use strict";
8
+
9
+ // $.prototype.extend(false, {
10
+ $.prototype.extend({
11
+
12
+ value: function(value) {
13
+ if (value || value === "") {
14
+ this.property("value", value);
15
+ return this;
16
+ } else {
17
+ value = this.property("value");
18
+ if (value) {
19
+ return value;
20
+ }
21
+ }
22
+
23
+ return "";
24
+ },
25
+
26
+ data: function(attrName, value) {
27
+ return this.attribute("data-" + attrName, value);
28
+ },
29
+
30
+ text: function(text) {
31
+ var
32
+ first,
33
+ childNodes,
34
+
35
+ callback = function(node) {
36
+ first = $(node).childNodes().asNode();
37
+ if (first instanceof window.Text) {
38
+ first.textContent = text;
39
+ } else {
40
+ $(node).prepend(window.document
41
+ .createTextNode(text));
42
+ }
43
+ },
44
+
45
+ iteratorBlock = function(node) {
46
+ if (node instanceof window.Text) {
47
+ text += $(node).textContent();
48
+ }
49
+ };
50
+
51
+ if (typeof text == "string") {
52
+ if (this.some()) {
53
+ this.each(callback);
54
+ }
55
+ return this;
56
+ } else {
57
+ text = "";
58
+ childNodes = this.childNodes();
59
+ if (childNodes.some()) {
60
+ childNodes.each(iteratorBlock);
61
+
62
+ return text.trim();
63
+ } else {
64
+ return "";
65
+ }
66
+ }
67
+ },
68
+
69
+ parent: function(query) {
70
+ var
71
+ parent,
72
+ callback,
73
+ elements = $();
74
+
75
+
76
+ if (query) {
77
+ // comparator = $(query).asNode();
78
+ // while (true) {
79
+ // if (Object.areEquivalents(parent, comparator)) {
80
+ // return $(parent);
81
+ // } else if (!parent) {
82
+ // break;
83
+ // }
84
+ // parent = parent.parentNode;
85
+ // }
86
+ callback = function(element) {
87
+ parent = element.closest(query);
88
+ if ($(parent).some()) {
89
+ elements.push(parent);
90
+ }
91
+ };
92
+ } else {
93
+ callback = function(element) {
94
+ elements.push(element.parentNode);
95
+ };
96
+ }
97
+
98
+ this.each(callback);
99
+
100
+ return elements;
101
+ },
102
+
103
+ lastIndex: function() {
104
+ return this.amount() - 1;
105
+ },
106
+
107
+ childNodes: function() {
108
+ var
109
+ childNodes = $(),
110
+
111
+ callback = function(node) {
112
+ childNodes.concat(true, node.childNodes);
113
+ };
114
+
115
+ this.each(callback);
116
+
117
+ return childNodes;
118
+ },
119
+
120
+ childElements: function(comparator) {
121
+ var
122
+ node,
123
+ comparators,
124
+ children = $(),
125
+
126
+ callback = function(element) {
127
+ var
128
+ iteratorBlock = function(comparator) {
129
+ if (element.is(comparator)) {
130
+ children.push(comparator);
131
+ }
132
+ };
133
+
134
+ comparators.each(iteratorBlock);
135
+ };
136
+
137
+ if (this.some()) {
138
+ node = this.asNode();
139
+
140
+ if (comparator) {
141
+ comparators = $(comparator);
142
+
143
+ $(node.children).each(callback);
144
+
145
+ return children;
146
+ }
147
+
148
+ return children.concat(this.asNode().children);
149
+ }
150
+
151
+ return $();
152
+ },
153
+
154
+ previousSiblings: function() {
155
+ var
156
+ node = this.asNode(),
157
+ sibling = node,
158
+ siblings = $();
159
+
160
+ sibling = sibling.previousElementSibling;
161
+ while (sibling) {
162
+ siblings.push(sibling);
163
+ sibling = sibling.previousElementSibling;
164
+ }
165
+
166
+ if (siblings.some()) {
167
+ return siblings;
168
+ }
169
+
170
+ return false;
171
+ },
172
+
173
+ nextSiblings: function() {
174
+ var
175
+ node = this.asNode(),
176
+ sibling = node,
177
+ siblings = $();
178
+
179
+ sibling = sibling.nextElementSibling;
180
+ while (sibling) {
181
+ siblings.push(sibling);
182
+ sibling = sibling.nextElementSibling;
183
+ }
184
+
185
+ if (siblings.some()) {
186
+ return siblings;
187
+ }
188
+
189
+ return false;
190
+ },
191
+
192
+ width: function(value) {
193
+ if (this.asNode() == window.document) {
194
+ return this.asNode().documentElement.offsetWidth;
195
+ }
196
+
197
+ var
198
+ width = this.css("width"),
199
+ padding = this.css("padding-left") +
200
+ this.css("padding-right"),
201
+ border = this.css("border-left-width") +
202
+ this.css("border-right-width"),
203
+
204
+ callback = function(node) {
205
+ node = $(node);
206
+ if (Number.isNaN(parseFloat(value))) {
207
+ node.css("width", value);
208
+ } else {
209
+ padding = node.css("padding-left") +
210
+ node.css("padding-right");
211
+ border = node.css("border-left-width") +
212
+ node.css("border-right-width");
213
+ value = parseFloat(value) - (padding + border);
214
+ if (value < 0) {
215
+ value = 0;
216
+ }
217
+ node.css("width", value + "px");
218
+ }
219
+ };
220
+
221
+ if (value || value === 0) {
222
+ this.each(callback);
223
+ } else {
224
+ if (Number.isNaN(parseFloat(width))) {
225
+ return this.asNode().offsetWidth;
226
+ }
227
+ return width + padding + border;
228
+ }
229
+ },
230
+
231
+ height: function(value) {
232
+ if (this.asNode() == window.document) {
233
+ return this.asNode().documentElement.offsetHeight;
234
+ }
235
+
236
+ var
237
+ height = this.css("height"),
238
+ padding = this.css("padding-top") +
239
+ this.css("padding-bottom"),
240
+ border = this.css("border-top-width") +
241
+ this.css("border-bottom-width"),
242
+
243
+ callback = function(node) {
244
+ node = $(node);
245
+ if (Number.isNaN(parseFloat(value))) {
246
+ node.css("height", value);
247
+ } else {
248
+ padding = node.css("padding-top") +
249
+ node.css("padding-bottom");
250
+ border = node.css("border-top-width") +
251
+ node.css("border-bottom-width");
252
+ value = parseFloat(value) - (padding + border);
253
+ if (value < 0) {
254
+ value = 0;
255
+ }
256
+ node.css("height", value + "px");
257
+ }
258
+ };
259
+
260
+ if (value || value === 0) {
261
+ this.each(callback);
262
+ } else {
263
+ if (Number.isNaN(parseFloat(height))) {
264
+ return this.asNode().offsetHeight;
265
+ }
266
+ return height + padding + border;
267
+ }
268
+ },
269
+
270
+ minWidth: function() {
271
+ var
272
+ padding = this.css("padding-left") +
273
+ this.css("padding-right");
274
+
275
+ return this.innerWidth() - padding;
276
+ },
277
+
278
+ innerWidth: function() {
279
+ var
280
+ border = this.css("border-left-width") +
281
+ this.css("border-right-width");
282
+
283
+ return this.width() - border;
284
+ },
285
+
286
+ minHeight: function() {
287
+ var
288
+ padding = this.css("padding-top") +
289
+ this.css("padding-bottom");
290
+
291
+ return this.innerHeight() - padding;
292
+ },
293
+
294
+ innerHeight: function() {
295
+ var
296
+ border = this.css("border-top-width") +
297
+ this.css("border-bottom-width");
298
+
299
+ return this.height() - border;
300
+ },
301
+
302
+ transitionDuration: function() {
303
+ return this.css("transition-duration") * 1000;
304
+ }
305
+
306
+ });
307
+
308
+ }(esPhinx));
@@ -0,0 +1,347 @@
1
+ var
2
+ esPhinx;
3
+
4
+
5
+ (function($) {
6
+ "use strict";
7
+
8
+ $.prototype.extend({
9
+
10
+ empty: function() {
11
+ return this.length === 0;
12
+ },
13
+
14
+ some: function() {
15
+ return !this.empty();
16
+ },
17
+
18
+ each: function(callback) {
19
+ $($.each(this, callback));
20
+ },
21
+
22
+ selectEach: function(callback) {
23
+ // delegate
24
+ return $($.select(this, callback));
25
+ },
26
+
27
+ selectInBreadth: function(callback) {
28
+ return $($.selectInBreadth(this, callback));
29
+ },
30
+
31
+ filter: function(callback) {
32
+ var
33
+ self = this,
34
+ filtered = $(),
35
+
36
+ iteratorBlock = function(node, i) {
37
+ // if (callback.call($(node), node, i, this)) {
38
+ if (callback.call(self, node, i)) {
39
+ filtered.push(node);
40
+ }
41
+ };
42
+
43
+ this.each(iteratorBlock);
44
+
45
+ return filtered;
46
+ },
47
+
48
+ filterInBreadth: function(callback) {
49
+ var
50
+ filtered = $(),
51
+
52
+ iteratorBlock = function(node, i) {
53
+ if (callback.call($(node), node, i, this)) {
54
+ filtered.push(node);
55
+ }
56
+ };
57
+
58
+ this.selectInBreadth(iteratorBlock);
59
+
60
+ return filtered;
61
+ },
62
+
63
+ filterText: function(text) {
64
+ var
65
+ callback = function(node) {
66
+ return $(node).text().trim() == text.trim();
67
+ };
68
+
69
+ return this.selectInBreadth(callback);
70
+ },
71
+
72
+ asArray: function() {
73
+ return Array.from(this);
74
+ },
75
+
76
+ sort: function(compareFunction) {
77
+ return $($.Collection.new(this).sort(compareFunction));
78
+ },
79
+
80
+ orderTextNodeByAsc: function() {
81
+ var
82
+ callback = function(node1, node2) {
83
+ return $(node1).text() > $(node2).text();
84
+ };
85
+
86
+ return this.sort(callback);
87
+ },
88
+
89
+ orderTextNodeByDesc: function() {
90
+ var
91
+ callback = function(node1, node2) {
92
+ return $(node1).text() < $(node2).text();
93
+ };
94
+
95
+ return this.sort(callback);
96
+ },
97
+
98
+ push: function() {
99
+ var
100
+ index,
101
+ mainReference = this,
102
+
103
+ callback = function(node) {
104
+ index = mainReference.lastIndex() + 1;
105
+ mainReference[index] = node;
106
+ };
107
+
108
+ Array.from(arguments).forEach(callback);
109
+
110
+ this.length = Object.amount(this);
111
+
112
+ return this;
113
+ },
114
+
115
+ concat: function(replace) {
116
+ var
117
+ concatened,
118
+ args = Array.from(arguments),
119
+
120
+ callback = function(collection) {
121
+ var
122
+ iteratorBlock = function(node) {
123
+ concatened.push(node);
124
+ };
125
+
126
+ collection = Array.from(collection);
127
+ collection.forEach(iteratorBlock);
128
+ };
129
+
130
+ if (typeof replace == "boolean" && replace) {
131
+ concatened = this;
132
+ args = args.slice(1, args.length);
133
+ } else {
134
+ concatened = this.copy();
135
+ }
136
+
137
+ args.forEach(callback);
138
+
139
+ return concatened;
140
+ },
141
+
142
+ elements: function() {
143
+ var
144
+ elements = $(),
145
+
146
+ callback = function(node) {
147
+ if ($(node).isA(window.Element)) {
148
+ elements.push(node);
149
+ }
150
+ };
151
+
152
+ this.each(callback);
153
+
154
+ return elements;
155
+ },
156
+
157
+ firstNode: function() {
158
+ var
159
+ childNodes,
160
+ firstNodes = $(),
161
+
162
+ callback = function(node) {
163
+ childNodes = $(node).childNodes();
164
+ if (childNodes.some()) {
165
+ firstNodes.push(childNodes.asNode());
166
+ }
167
+ };
168
+
169
+ this.each(callback);
170
+
171
+ return firstNodes;
172
+ },
173
+
174
+ firstElement: function() {
175
+ var
176
+ childElements,
177
+ firstElements = $(),
178
+
179
+ callback = function(node) {
180
+ childElements = $(node).childElements();
181
+ if (childElements.some()) {
182
+ firstElements.push(childElements.asNode());
183
+ }
184
+ };
185
+
186
+ this.each(callback);
187
+
188
+ return firstElements;
189
+ },
190
+
191
+ previous: function(filter) {
192
+ var
193
+ query,
194
+ sibling,
195
+ siblings = $(),
196
+
197
+ iteratorBlock = function(node) {
198
+ return $(node).is(query);
199
+ },
200
+
201
+ callback = function(node) {
202
+ sibling = node.previousElementSibling;
203
+ if (sibling && sibling instanceof window.Node) {
204
+ siblings.push(sibling);
205
+ }
206
+ };
207
+
208
+ if (filter) {
209
+ query = this.parent().find(filter);
210
+
211
+ if (query.some()) {
212
+ siblings = this.previousSiblings()
213
+ .filter(iteratorBlock);
214
+ }
215
+ } else {
216
+ this.each(callback);
217
+ }
218
+
219
+ return siblings;
220
+ },
221
+
222
+ next: function(filter) {
223
+ var
224
+ query,
225
+ sibling,
226
+ siblings = $(),
227
+
228
+ iteratorBlock = function(node) {
229
+ return $(node).is(query);
230
+ },
231
+
232
+ callback = function(node) {
233
+ sibling = node.nextSibling;
234
+ if (sibling && sibling instanceof window.Node) {
235
+ siblings.push(sibling);
236
+ }
237
+ };
238
+
239
+ if (filter) {
240
+ query = this.parent().find(filter);
241
+
242
+ if (query.some()) {
243
+ siblings = this.nextSiblings()
244
+ .filter(iteratorBlock);
245
+ }
246
+ } else {
247
+ this.each(callback);
248
+ }
249
+
250
+ return siblings;
251
+ },
252
+
253
+ asNode: function() {
254
+ if (this.some()) {
255
+ return this.first()[0];
256
+ }
257
+ return null;
258
+ },
259
+
260
+ amount: function() {
261
+ return this.length;
262
+ },
263
+
264
+ find: function(query) {
265
+ return $(query, this);
266
+ },
267
+
268
+ clone: function(copyChildren) {
269
+ if (typeof copyChildren != "boolean") { copyChildren = false; }
270
+
271
+ var
272
+ cloned = $(),
273
+
274
+ callback = function(node) {
275
+ if (node instanceof window.Element) {
276
+ cloned.push(node.cloneNode(copyChildren));
277
+ }
278
+ };
279
+
280
+ this.each(callback);
281
+
282
+ return cloned;
283
+ },
284
+
285
+ copy: function() {
286
+ var
287
+ copy = $();
288
+
289
+ Object.assign(copy, this);
290
+ copy.length = Object.amount(copy);
291
+
292
+ return copy;
293
+ },
294
+
295
+ first: function() {
296
+ return $(this[0]);
297
+ },
298
+
299
+ last: function() {
300
+ return $(this[this.lastIndex()]);
301
+ },
302
+
303
+ asString: function() {
304
+ var
305
+ string = "",
306
+
307
+ callback = function(node) {
308
+ if (node instanceof window.Element) {
309
+ string += node.outerHTML + "\n";
310
+ } else if (node instanceof window.Text) {
311
+ string += node.wholeText + "\n";
312
+ }
313
+ };
314
+
315
+ this.each(callback);
316
+
317
+ return string;
318
+ },
319
+
320
+ findHasNotAttr: function(query, attr) {
321
+ return this.find(query + ":not([" + attr + "])");
322
+ },
323
+
324
+ findByAttr: function(query, attr, value) {
325
+ return this.find(query + "[" + attr + "=\"" + value + "\"]");
326
+ },
327
+
328
+ textContentsAsArray: function() {
329
+ var
330
+ array = [],
331
+
332
+ callback = function(node) {
333
+ array.push($(node).text().trim());
334
+ };
335
+
336
+ this.each(callback);
337
+
338
+ return array;
339
+ },
340
+
341
+ item: function(index) {
342
+ return $(this[index]);
343
+ }
344
+
345
+ });
346
+
347
+ }(esPhinx));