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,3 @@
1
+ //= require ./main
2
+ //= require_directory ./lib
3
+ //= require_tree .
@@ -0,0 +1,51 @@
1
+ var
2
+ esPhinx;
3
+
4
+
5
+ (function($) {
6
+ "use strict";
7
+
8
+
9
+ $.extend({
10
+ Collection: {}
11
+ });
12
+
13
+ $.Extender.extend($.Collection, true, {
14
+ new: function(collection) {
15
+ var
16
+ asArray,
17
+ self = $.Collection,
18
+ ConstructorReference = self.new,
19
+
20
+ callback = function(object1, object2) {
21
+ // debugger
22
+ // if (Object.classForName(Object.className(object1))
23
+ if (object1.constructor
24
+ .implementsMethods("compareTo")) {
25
+ return object1.compareTo(object2);
26
+ }
27
+ };
28
+
29
+ if (!(this instanceof ConstructorReference)) {
30
+ return new ConstructorReference(collection);
31
+ }
32
+
33
+ if(!(collection instanceof Array)) {
34
+ asArray = Array.from(Object.asCountableLiteral(collection));
35
+ } else {
36
+ asArray = collection;
37
+ }
38
+
39
+ this.sort = function(compareFunction) {
40
+ if (typeof compareFunction == "function") {
41
+ return asArray.sort(compareFunction);
42
+ } else {
43
+ // callback in node1 and node2, based a some (Strategy), objects to compare and sort.
44
+ return asArray.sort(callback);
45
+ }
46
+ };
47
+
48
+ }
49
+ });
50
+
51
+ }(esPhinx));
@@ -0,0 +1,54 @@
1
+ // var
2
+ // Comparable;
3
+
4
+ // (function($) {
5
+ // "use strict";
6
+
7
+ // // callback pode ser definido aqui (static) para ser usado no caso de o tipo dos dois argumentos forem de um tipo incompatível
8
+
9
+ // $.extend({
10
+
11
+ // Comparable: {
12
+
13
+ // compareTo: function (object) {
14
+ // if (this) {
15
+ // if (Object.getPrototypeOf(this) ==
16
+ // Object.getPrototypeOf(object) &&
17
+ // this > object) {
18
+ // return true;
19
+ // }
20
+ // } else if (argument[1]) {
21
+ // if (Object.getPrototypeOf(object) ==
22
+ // Object.getPrototypeOf(argument[1]) &&
23
+ // object > argument[1]) {
24
+ // return true;
25
+ // }
26
+ // }
27
+ // }
28
+
29
+ // // compareTo: function (callback) {
30
+ // // var
31
+ // // clone,
32
+ // // collection;
33
+
34
+ // // // não precisa testar se é instância de array, bastaria testar se é iterável e usar Array.from para converter
35
+ // // if (this && this instanceof Array) {
36
+ // // collection = this;
37
+ // // } else if (callback instanceof Array && argument[1] &&
38
+ // // typeof argument[1] == "function") {
39
+ // // collection = callback;
40
+ // // callback = argument[1];
41
+ // // }
42
+
43
+ // // clone = collection.clone();
44
+ // // clone.sort(function(a, b) {
45
+ // // // return callback(a, b);
46
+ // // callback(a, b);
47
+ // // });
48
+ // // }
49
+
50
+ // }
51
+
52
+ // });
53
+
54
+ // }(window));
@@ -0,0 +1,541 @@
1
+ var
2
+ SearchContext,
3
+ Search,
4
+ Iterable;
5
+
6
+ (function($) {
7
+ "use strict";
8
+
9
+ try {
10
+ Object.defineProperties($, {
11
+ flatten: {
12
+ value: function(linkedList) {
13
+ var
14
+ iterator,
15
+ flattened = [],
16
+ allowedPattern = /^(Array|Arguments)$/,
17
+ className = Object.className(linkedList),
18
+
19
+ callback = function(item) {
20
+ if (!allowedPattern.test(Object.className(item))) {
21
+ flattened.push(item);
22
+ }
23
+ };
24
+
25
+ if (className == "Arguments") {
26
+ linkedList = $.from(linkedList);
27
+ } else if (!allowedPattern.test(className)) {
28
+ return linkedList;
29
+ }
30
+
31
+ // this way will treate all as String after run .join
32
+ // linkedList = linkedList.join().split(",");
33
+ iterator = SearchContext.Proxy
34
+ .new(Search.Graphs.BFS.Object.new(linkedList));
35
+
36
+ iterator.research(callback);
37
+
38
+ return flattened;
39
+ }
40
+ },
41
+
42
+ compact: {
43
+ value: function(collection) {
44
+ var
45
+
46
+ callback = function(item) {
47
+ if (typeof item == "string") {
48
+ if (item !== "") {
49
+ return true;
50
+ }
51
+ } else {
52
+ if (item !== undefined && item !== null) {
53
+ return true;
54
+ }
55
+ }
56
+ };
57
+
58
+ return collection.filter(callback);
59
+ }
60
+ }
61
+ });
62
+
63
+ Object.defineProperties($.prototype, {
64
+
65
+ copy: {
66
+ value: function(startingIndex, finalIndex) {
67
+ return this.slice(startingIndex, finalIndex + 1);
68
+ }
69
+ },
70
+
71
+ clone: {
72
+ value: function() {
73
+ var
74
+ clone = [];
75
+
76
+ Object.assign(clone, this);
77
+
78
+ return clone;
79
+ }
80
+ },
81
+
82
+ intersection: {
83
+ value: function(set) {
84
+ var
85
+ smaller,
86
+ larger,
87
+ all = [this, set],
88
+
89
+ classifier = function(first, second) {
90
+ return first.length > second.length;
91
+ },
92
+
93
+ callback = function(item) {
94
+ return larger.includes(item);
95
+ };
96
+
97
+ smaller = (all = all.sort(classifier)).first();
98
+ larger = all[1];
99
+
100
+ return smaller.filter(callback).uniq();
101
+ }
102
+ },
103
+
104
+ intersections: {
105
+ value: function(sets) {
106
+ var
107
+ smaller,
108
+ self = this,
109
+ all = Array.from(arguments),
110
+
111
+ classifier = function(first, second) {
112
+ return first.length > second.length;
113
+ },
114
+
115
+ callback = function(intersections, set) {
116
+ return intersections.intersection(set);
117
+ };
118
+
119
+ all.push(self);
120
+ all.sort(classifier);
121
+ smaller = all.deleteAt(0);
122
+ // reduce works with any value and it cans to reduce the list, filter works with true or false to filter values, and map replace the values.
123
+ return all.reduce(callback, smaller.intersection(all.first()));
124
+ }
125
+ },
126
+
127
+ difference: {
128
+ value: function(sets) {
129
+ var
130
+ self = this,
131
+ differences = self.clone(),
132
+
133
+ iteratorBlock = function(set) {
134
+ var
135
+ callback = function(item) {
136
+ return !set.includes(item);
137
+ };
138
+
139
+ differences = differences.filter(callback);
140
+ };
141
+
142
+ sets = Array.from(arguments);
143
+
144
+ if (sets.length < 1) {
145
+ return this;
146
+ }
147
+
148
+ sets.uniq().forEach(iteratorBlock);
149
+
150
+ return differences;
151
+ }
152
+ },
153
+
154
+ insertAt: {
155
+ value: function(values, index) {
156
+ var
157
+ copy,
158
+ self = this,
159
+ argumentsAsArray = Array.from(arguments),
160
+
161
+ callback = function(v) {
162
+ self.push(v);
163
+ };
164
+
165
+ index = argumentsAsArray.last();
166
+ copy = self.copy(index, self.lastIndex());
167
+ argumentsAsArray.deleteAt(argumentsAsArray.lastIndex());
168
+ self.deleteAt(index, self.lastIndex());
169
+ Array.prototype.push.apply(self, argumentsAsArray);
170
+
171
+ copy.forEach(callback);
172
+
173
+ return this;
174
+ }
175
+ },
176
+
177
+ indexOfEquivalence: {
178
+ // value: function(comparator, startingIndex = 0) {
179
+ value: function(comparator, startingIndex) {
180
+ if(typeof startingIndex != "number") {startingIndex = 0;}
181
+
182
+ var
183
+ item,
184
+ i = startingIndex;
185
+
186
+ for (i = startingIndex; i < this.length; i++) {
187
+ item = this[i];
188
+ if (typeof item == "function") {
189
+ if (item == comparator) {
190
+ return i;
191
+ }
192
+ } else {
193
+ if (item === undefined) {
194
+ console.warn("Item to compare is " +
195
+ "undefined!");
196
+ }
197
+
198
+ if (Object.areEquivalents(item, comparator)) {
199
+ return i;
200
+ }
201
+ }
202
+ }
203
+
204
+ return -1;
205
+ }
206
+ },
207
+
208
+ uniq: {
209
+ value: function() {
210
+ var
211
+ callback = function(reduced, value) {
212
+ if (reduced.indexOfEquivalence(value) == -1) {
213
+ reduced.push(value);
214
+ }
215
+ return reduced;
216
+ };
217
+
218
+ return this.reduce(callback, []);
219
+ }
220
+ },
221
+
222
+ // already proposed in ES7
223
+ // includes: {
224
+ // value: function(items) {
225
+ // var
226
+ // argumentsAsArray = Array.from(arguments).uniq(),
227
+ // mainReference = this,
228
+ // count = 0,
229
+
230
+ // callback = function(arg) {
231
+ // if (mainReference.indexOfEquivalence(arg) > -1) {
232
+ // count += 1;
233
+ // }
234
+ // };
235
+
236
+ // argumentsAsArray.forEach(callback);
237
+
238
+ // return count == argumentsAsArray.length;
239
+ // }
240
+ // },
241
+
242
+ deleteAt: {
243
+ value: function(startingIndex, finalIndex) {
244
+ var
245
+ value,
246
+ count = 1;
247
+
248
+ if (typeof finalIndex == "number") {
249
+ count = finalIndex + 1 - startingIndex;
250
+ }
251
+
252
+ value = this[startingIndex];
253
+ this.splice(startingIndex, count);
254
+
255
+ return value;
256
+ }
257
+ },
258
+
259
+ delete: {
260
+ value: function(collection) {
261
+ var
262
+ amount,
263
+ index,
264
+ deletedValue,
265
+ self = this,
266
+ deleted = [],
267
+ partsToDelete = Array.from(arguments),
268
+
269
+ callback = function(value) {
270
+ amount = self.amount(value);
271
+ while (amount-- > 0) {
272
+ index = self.indexOfEquivalence(value);
273
+ if (index > -1) {
274
+ deletedValue = self[index];
275
+ self.splice(index, 1);
276
+ }
277
+ }
278
+
279
+ if (index > -1) {
280
+ deleted.push(deletedValue);
281
+ }
282
+ };
283
+
284
+ partsToDelete.forEach(callback);
285
+
286
+ if (deleted.length > 1) {
287
+ return deleted;
288
+ }
289
+ return deleted[0];
290
+ }
291
+ },
292
+
293
+ without: {
294
+ value: function(items) {
295
+ var
296
+ parts = Array.from(arguments),
297
+ self = this,
298
+
299
+ callback = function(item) {
300
+ return !parts.includes(item);
301
+ };
302
+
303
+ return self.filter(callback);
304
+ }
305
+ },
306
+
307
+ amount: {
308
+ value: function(item) {
309
+
310
+ var
311
+ count = 0,
312
+ i = 0;
313
+
314
+ while (true) {
315
+ i = this.indexOfEquivalence(item, i);
316
+ if (i > -1) {
317
+ count++;
318
+ if (++i == this.length) {
319
+ break;
320
+ }
321
+ } else {
322
+ break;
323
+ }
324
+ }
325
+
326
+ return count;
327
+ }
328
+ },
329
+
330
+ empty: {
331
+ value: function() {
332
+ return this.amount() === 0;
333
+ }
334
+ },
335
+
336
+ firstFromASlice: {
337
+ value: function(slice, startingIndex, caseSensitive) {
338
+ var
339
+ regexp,
340
+ iterator,
341
+ clone = this.clone(),
342
+ index = -1,
343
+
344
+ block = function(v, i) {
345
+ if (typeof v == "string" && i >= startingIndex) {
346
+ if (v.search(regexp) != -1) {
347
+ index = i;
348
+ this.finalize();
349
+ }
350
+ }
351
+ };
352
+
353
+ if (typeof startingIndex != "number") {
354
+ if (typeof startingIndex == "boolean") {
355
+ caseSensitive = startingIndex;
356
+ }
357
+ startingIndex = 0;
358
+ }
359
+
360
+ if (typeof caseSensitive != "boolean") {
361
+ caseSensitive = false;
362
+ }
363
+
364
+ if (startingIndex === 0) {
365
+ clone = clone.asc();
366
+ }
367
+
368
+ slice = slice.trim();
369
+
370
+ if (!caseSensitive) {
371
+ regexp = new RegExp(slice, "i");
372
+ } else {
373
+ regexp = new RegExp(slice);
374
+ }
375
+
376
+ iterator = Iterable.Proxy.new(this);
377
+ iterator.each(block);
378
+
379
+ return index;
380
+ }
381
+ },
382
+
383
+ countSlice: {
384
+ value: function(slice, startingIndex, caseSensitive) {
385
+ var
386
+ i,
387
+ regexp,
388
+ clone = this.clone(),
389
+ count = 0;
390
+
391
+ if (typeof startingIndex != "number") {
392
+ if (typeof startingIndex == "boolean") {
393
+ caseSensitive = startingIndex;
394
+ }
395
+ startingIndex = 0;
396
+ }
397
+
398
+ if (typeof caseSensitive != "boolean") {
399
+ caseSensitive = false;
400
+ }
401
+
402
+ if (startingIndex === 0) {
403
+ clone = clone.asc();
404
+ }
405
+
406
+ slice = slice.trim();
407
+
408
+ if (!caseSensitive) {
409
+ regexp = new RegExp(slice, "i");
410
+ } else {
411
+ regexp = new RegExp(slice);
412
+ }
413
+
414
+ i = parseInt(clone.firstFromASlice(slice, startingIndex,
415
+ caseSensitive));
416
+
417
+ if (i > -1) {
418
+ while (i < this.length) {
419
+ if (clone[i].trim().search(regexp) > -1) {
420
+ count += 1;
421
+ i += 1;
422
+ } else {
423
+ break;
424
+ }
425
+ }
426
+ }
427
+
428
+ return count;
429
+ }
430
+ },
431
+
432
+ flatten: {
433
+ value: function() {
434
+ return $.flatten(this);
435
+ }
436
+ },
437
+
438
+ normalizeToLowerCase: {
439
+ value: function() {
440
+ var
441
+ clone = [],
442
+
443
+ callback = function(value) {
444
+ if (typeof value == "string") {
445
+ clone.push(value.toLowerCase()());
446
+ }
447
+ };
448
+
449
+ this.forEach(callback);
450
+
451
+ return clone;
452
+ }
453
+ },
454
+
455
+ capitalize: {
456
+ value: function() {
457
+ var
458
+ clone = [],
459
+
460
+ callback = function(value) {
461
+ if (typeof value == "string") {
462
+ clone.push(value.capitalize());
463
+ }
464
+ };
465
+
466
+ this.forEach(callback);
467
+
468
+ return clone;
469
+ }
470
+ },
471
+
472
+ spaceOut: {
473
+ value: function() {
474
+ var
475
+ i = 0,
476
+ clone = this.clone();
477
+
478
+ while (i < clone.lastIndex()) {
479
+ clone[i++] += " ";
480
+ }
481
+
482
+ return clone;
483
+ }
484
+ },
485
+
486
+ compact: {
487
+ value: function() {
488
+ return $.compact(this);
489
+ }
490
+ },
491
+
492
+ asc: {
493
+ value: function() {
494
+ var
495
+ clone = this.clone(),
496
+ compareFunction = function(a, b) {
497
+ return a > b;
498
+ };
499
+
500
+ clone.sort(compareFunction);
501
+
502
+ return clone;
503
+ }
504
+ },
505
+
506
+ desc: {
507
+ value: function() {
508
+ var
509
+ clone = this.clone(),
510
+ compareFunction = function(a, b) {
511
+ return a < b;
512
+ };
513
+
514
+ clone.sort(compareFunction);
515
+
516
+ return clone;
517
+ }
518
+ },
519
+
520
+ lastIndex: {
521
+ value: function() {
522
+ return this.length - 1;
523
+ }
524
+ },
525
+
526
+ first: {
527
+ value: function() {
528
+ return this[0];
529
+ }
530
+ },
531
+
532
+ last: {
533
+ value: function() {
534
+ return this[this.lastIndex()];
535
+ }
536
+ }
537
+
538
+ });
539
+ } catch(e) {}
540
+
541
+ })(Array);