select2-rails 3.1.1 → 3.2.0
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.
Binary file
|
Binary file
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
Copyright 2012 Igor Vaynberg
|
3
3
|
|
4
|
-
Version: 3.
|
4
|
+
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
|
5
5
|
|
6
6
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
|
7
7
|
compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
|
@@ -92,14 +92,6 @@
|
|
92
92
|
|
93
93
|
nextUid=(function() { var counter=1; return function() { return counter++; }; }());
|
94
94
|
|
95
|
-
function escapeMarkup(markup) {
|
96
|
-
if (markup && typeof(markup) === "string") {
|
97
|
-
return markup.replace(/&/g, "&");
|
98
|
-
} else {
|
99
|
-
return markup;
|
100
|
-
}
|
101
|
-
}
|
102
|
-
|
103
95
|
function indexOf(value, array) {
|
104
96
|
var i = 0, l = array.length, v;
|
105
97
|
|
@@ -170,7 +162,7 @@
|
|
170
162
|
});
|
171
163
|
}
|
172
164
|
|
173
|
-
$(document).delegate("
|
165
|
+
$(document).delegate("body", "mousemove", function (e) {
|
174
166
|
$.data(document, "select2-lastpos", {x: e.pageX, y: e.pageY});
|
175
167
|
});
|
176
168
|
|
@@ -195,13 +187,18 @@
|
|
195
187
|
*
|
196
188
|
* @param quietMillis number of milliseconds to wait before invoking fn
|
197
189
|
* @param fn function to be debounced
|
190
|
+
* @param ctx object to be used as this reference within fn
|
198
191
|
* @return debounced version of fn
|
199
192
|
*/
|
200
|
-
function debounce(quietMillis, fn) {
|
193
|
+
function debounce(quietMillis, fn, ctx) {
|
194
|
+
ctx = ctx || undefined;
|
201
195
|
var timeout;
|
202
196
|
return function () {
|
197
|
+
var args = arguments;
|
203
198
|
window.clearTimeout(timeout);
|
204
|
-
timeout = window.setTimeout(
|
199
|
+
timeout = window.setTimeout(function() {
|
200
|
+
fn.apply(ctx, args);
|
201
|
+
}, quietMillis);
|
205
202
|
};
|
206
203
|
}
|
207
204
|
|
@@ -354,14 +351,33 @@
|
|
354
351
|
}
|
355
352
|
|
356
353
|
return function (query) {
|
357
|
-
var t = query.term, filtered = {};
|
354
|
+
var t = query.term, filtered = { results: [] }, process;
|
358
355
|
if (t === "") {
|
359
356
|
query.callback({results: data});
|
360
357
|
return;
|
361
358
|
}
|
362
|
-
|
363
|
-
|
364
|
-
|
359
|
+
|
360
|
+
process = function(datum, collection) {
|
361
|
+
var group, attr;
|
362
|
+
datum = datum[0];
|
363
|
+
if (datum.children) {
|
364
|
+
group = {};
|
365
|
+
for (attr in datum) {
|
366
|
+
if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];
|
367
|
+
}
|
368
|
+
group.children=[];
|
369
|
+
$(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });
|
370
|
+
if (group.children.length) {
|
371
|
+
collection.push(group);
|
372
|
+
}
|
373
|
+
} else {
|
374
|
+
if (query.matcher(t, text(datum))) {
|
375
|
+
collection.push(datum);
|
376
|
+
}
|
377
|
+
}
|
378
|
+
};
|
379
|
+
|
380
|
+
$(data).each2(function(i, datum) { process(datum, filtered.results); });
|
365
381
|
query.callback(filtered);
|
366
382
|
};
|
367
383
|
}
|
@@ -478,7 +494,7 @@
|
|
478
494
|
* also takes care of clicks on label tags that point to the source element
|
479
495
|
*/
|
480
496
|
$(document).ready(function () {
|
481
|
-
$(document).delegate("
|
497
|
+
$(document).delegate("body", "mousedown touchend", function (e) {
|
482
498
|
var target = $(e.target).closest("div.select2-container").get(0), attr;
|
483
499
|
if (target) {
|
484
500
|
$(document).find("div.select2-container-active").each(function () {
|
@@ -544,14 +560,15 @@
|
|
544
560
|
this.enabled=true;
|
545
561
|
this.container = this.createContainer();
|
546
562
|
|
547
|
-
this.containerId="
|
563
|
+
this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid());
|
564
|
+
this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
|
548
565
|
this.container.attr("id", this.containerId);
|
549
566
|
|
550
567
|
// cache the body so future lookups are cheap
|
551
568
|
this.body = thunk(function() { return opts.element.closest("body"); });
|
552
569
|
|
553
570
|
if (opts.element.attr("class") !== undefined) {
|
554
|
-
this.container.addClass(opts.element.attr("class"));
|
571
|
+
this.container.addClass(opts.element.attr("class").replace(/validate\[[\S ]+] ?/, ''));
|
555
572
|
}
|
556
573
|
|
557
574
|
this.container.css(evaluate(opts.containerCss));
|
@@ -675,7 +692,7 @@
|
|
675
692
|
|
676
693
|
result=results[i];
|
677
694
|
selectable=id(result) !== undefined;
|
678
|
-
compound=
|
695
|
+
compound=result.children && result.children.length > 0;
|
679
696
|
|
680
697
|
node=$("<li></li>");
|
681
698
|
node.addClass("select2-results-dept-"+depth);
|
@@ -689,7 +706,7 @@
|
|
689
706
|
|
690
707
|
formatted=opts.formatResult(result, label, query);
|
691
708
|
if (formatted!==undefined) {
|
692
|
-
label.html(escapeMarkup(formatted));
|
709
|
+
label.html(self.opts.escapeMarkup(formatted));
|
693
710
|
}
|
694
711
|
|
695
712
|
node.append(label);
|
@@ -816,6 +833,11 @@
|
|
816
833
|
// some validation frameworks ignore the change event and listen instead to keyup, click for selects
|
817
834
|
// so here we trigger the click event manually
|
818
835
|
this.opts.element.click();
|
836
|
+
|
837
|
+
// ValidationEngine ignorea the change event and listens instead to blur
|
838
|
+
// so here we trigger the blur event manually if so desired
|
839
|
+
if (this.opts.blurOnChange)
|
840
|
+
this.opts.element.blur();
|
819
841
|
},
|
820
842
|
|
821
843
|
|
@@ -850,15 +872,25 @@
|
|
850
872
|
dropHeight = this.dropdown.outerHeight(),
|
851
873
|
viewportBottom = $(window).scrollTop() + document.documentElement.clientHeight,
|
852
874
|
dropTop = offset.top + height,
|
875
|
+
dropLeft = offset.left,
|
853
876
|
enoughRoomBelow = dropTop + dropHeight <= viewportBottom,
|
854
877
|
enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(),
|
855
878
|
aboveNow = this.dropdown.hasClass("select2-drop-above"),
|
879
|
+
bodyOffset,
|
856
880
|
above,
|
857
881
|
css;
|
858
882
|
|
859
883
|
// console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow);
|
860
884
|
// console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove);
|
861
885
|
|
886
|
+
// fix positioning when body has an offset and is not position: static
|
887
|
+
|
888
|
+
if (this.body().css('position') !== 'static') {
|
889
|
+
bodyOffset = this.body().offset();
|
890
|
+
dropTop -= bodyOffset.top;
|
891
|
+
dropLeft -= bodyOffset.left;
|
892
|
+
}
|
893
|
+
|
862
894
|
// always prefer the current above/below alignment, unless there is not enough room
|
863
895
|
|
864
896
|
if (aboveNow) {
|
@@ -879,11 +911,11 @@
|
|
879
911
|
this.dropdown.removeClass("select2-drop-above");
|
880
912
|
}
|
881
913
|
|
882
|
-
css = {
|
883
|
-
top:dropTop,
|
884
|
-
left:
|
885
|
-
width:width
|
886
|
-
};
|
914
|
+
css = $.extend({
|
915
|
+
top: dropTop,
|
916
|
+
left: dropLeft,
|
917
|
+
width: width
|
918
|
+
}, evaluate(this.opts.dropdownCss));
|
887
919
|
|
888
920
|
this.dropdown.css(css);
|
889
921
|
},
|
@@ -894,7 +926,7 @@
|
|
894
926
|
|
895
927
|
if (this.opened()) return false;
|
896
928
|
|
897
|
-
event =
|
929
|
+
event = $.Event("open");
|
898
930
|
this.opts.element.trigger(event);
|
899
931
|
return !event.isDefaultPrevented();
|
900
932
|
},
|
@@ -927,7 +959,7 @@
|
|
927
959
|
*/
|
928
960
|
// abstract
|
929
961
|
opening: function() {
|
930
|
-
var cid = this.containerId, selector =
|
962
|
+
var cid = this.containerId, selector = this.containerSelector,
|
931
963
|
scroll = "scroll." + cid, resize = "resize." + cid;
|
932
964
|
|
933
965
|
this.container.parents().each(function() {
|
@@ -952,8 +984,6 @@
|
|
952
984
|
|
953
985
|
if (this.search.val() === " ") { this.search.val(""); }
|
954
986
|
|
955
|
-
this.dropdown.css(evaluate(this.opts.dropdownCss));
|
956
|
-
this.dropdown.addClass("select2-drop-active");
|
957
987
|
this.container.addClass("select2-dropdown-open").addClass("select2-container-active");
|
958
988
|
|
959
989
|
this.updateResults(true);
|
@@ -963,9 +993,11 @@
|
|
963
993
|
}
|
964
994
|
|
965
995
|
this.dropdown.show();
|
966
|
-
this.ensureHighlightVisible();
|
967
996
|
|
968
997
|
this.positionDropdown();
|
998
|
+
this.dropdown.addClass("select2-drop-active");
|
999
|
+
|
1000
|
+
this.ensureHighlightVisible();
|
969
1001
|
|
970
1002
|
this.focusSearch();
|
971
1003
|
},
|
@@ -988,7 +1020,7 @@
|
|
988
1020
|
this.results.empty();
|
989
1021
|
this.clearSearch();
|
990
1022
|
|
991
|
-
this.opts.element.trigger(
|
1023
|
+
this.opts.element.trigger($.Event("close"));
|
992
1024
|
},
|
993
1025
|
|
994
1026
|
// abstract
|
@@ -1113,6 +1145,10 @@
|
|
1113
1145
|
matcher: this.opts.matcher,
|
1114
1146
|
callback: this.bind(function (data) {
|
1115
1147
|
|
1148
|
+
// ignore a response if the select2 has been closed before it was received
|
1149
|
+
if (!self.opened()) return;
|
1150
|
+
|
1151
|
+
|
1116
1152
|
self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context});
|
1117
1153
|
|
1118
1154
|
if (data.more===true) {
|
@@ -1155,7 +1191,7 @@
|
|
1155
1191
|
}
|
1156
1192
|
|
1157
1193
|
function render(html) {
|
1158
|
-
results.html(escapeMarkup(html));
|
1194
|
+
results.html(self.opts.escapeMarkup(html));
|
1159
1195
|
postRender();
|
1160
1196
|
}
|
1161
1197
|
|
@@ -1190,6 +1226,9 @@
|
|
1190
1226
|
callback: this.bind(function (data) {
|
1191
1227
|
var def; // default choice
|
1192
1228
|
|
1229
|
+
// ignore a response if the select2 has been closed before it was received
|
1230
|
+
if (!this.opened()) return;
|
1231
|
+
|
1193
1232
|
// save context, if any
|
1194
1233
|
this.context = (data.context===undefined) ? null : data.context;
|
1195
1234
|
|
@@ -1215,7 +1254,7 @@
|
|
1215
1254
|
self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null});
|
1216
1255
|
|
1217
1256
|
if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) {
|
1218
|
-
results.append("<li class='select2-more-results'>" + escapeMarkup(opts.formatLoadMore(this.resultsPage)) + "</li>");
|
1257
|
+
results.append("<li class='select2-more-results'>" + self.opts.escapeMarkup(opts.formatLoadMore(this.resultsPage)) + "</li>");
|
1219
1258
|
window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
|
1220
1259
|
}
|
1221
1260
|
|
@@ -1243,11 +1282,16 @@
|
|
1243
1282
|
|
1244
1283
|
// abstract
|
1245
1284
|
focusSearch: function () {
|
1285
|
+
// need to do it here as well as in timeout so it works in IE
|
1286
|
+
this.search.show();
|
1287
|
+
this.search.focus();
|
1288
|
+
|
1246
1289
|
/* we do this in a timeout so that current event processing can complete before this code is executed.
|
1247
1290
|
this makes sure the search field is focussed even if the current event would blur it */
|
1248
1291
|
window.setTimeout(this.bind(function () {
|
1249
|
-
this.search.focus();
|
1250
1292
|
// reset the value so IE places the cursor at the end of the input box
|
1293
|
+
this.search.show();
|
1294
|
+
this.search.focus();
|
1251
1295
|
this.search.val(this.search.val());
|
1252
1296
|
}), 10);
|
1253
1297
|
},
|
@@ -1333,7 +1377,7 @@
|
|
1333
1377
|
var container = $("<div></div>", {
|
1334
1378
|
"class": "select2-container"
|
1335
1379
|
}).html([
|
1336
|
-
" <a href='
|
1380
|
+
" <a href='#' onclick='return false;' class='select2-choice'>",
|
1337
1381
|
" <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr>",
|
1338
1382
|
" <div><b></b></div>" ,
|
1339
1383
|
"</a>",
|
@@ -1594,7 +1638,7 @@
|
|
1594
1638
|
// check for a first blank option if attached to a select
|
1595
1639
|
if (this.select && this.select.find("option:first").text() !== "") return;
|
1596
1640
|
|
1597
|
-
this.selection.find("span").html(escapeMarkup(placeholder));
|
1641
|
+
this.selection.find("span").html(this.opts.escapeMarkup(placeholder));
|
1598
1642
|
|
1599
1643
|
this.selection.addClass("select2-default");
|
1600
1644
|
|
@@ -1653,7 +1697,7 @@
|
|
1653
1697
|
container.empty();
|
1654
1698
|
formatted=this.opts.formatSelection(data, container);
|
1655
1699
|
if (formatted !== undefined) {
|
1656
|
-
container.append(escapeMarkup(formatted));
|
1700
|
+
container.append(this.opts.escapeMarkup(formatted));
|
1657
1701
|
}
|
1658
1702
|
|
1659
1703
|
this.selection.removeClass("select2-default");
|
@@ -1691,6 +1735,7 @@
|
|
1691
1735
|
this.clear();
|
1692
1736
|
return;
|
1693
1737
|
}
|
1738
|
+
this.opts.element.val(val);
|
1694
1739
|
this.opts.initSelection(this.opts.element, function(data){
|
1695
1740
|
self.opts.element.val(!data ? "" : self.id(data));
|
1696
1741
|
self.updateSelection(data);
|
@@ -1835,12 +1880,19 @@
|
|
1835
1880
|
|
1836
1881
|
this.search.bind("keyup", this.bind(this.resizeSearch));
|
1837
1882
|
|
1838
|
-
this.search.bind("blur", this.bind(function() {
|
1883
|
+
this.search.bind("blur", this.bind(function(e) {
|
1839
1884
|
this.container.removeClass("select2-container-active");
|
1885
|
+
this.search.removeClass("select2-focused");
|
1886
|
+
this.clearSearch();
|
1887
|
+
e.stopImmediatePropagation();
|
1840
1888
|
}));
|
1841
1889
|
|
1842
1890
|
this.container.delegate(selector, "mousedown", this.bind(function (e) {
|
1843
1891
|
if (!this.enabled) return;
|
1892
|
+
if ($(e.target).closest(".select2-search-choice").length > 0) {
|
1893
|
+
// clicked inside a select2 search choice, do not open
|
1894
|
+
return;
|
1895
|
+
}
|
1844
1896
|
this.clearPlaceholder();
|
1845
1897
|
this.open();
|
1846
1898
|
this.focusSearch();
|
@@ -2018,20 +2070,20 @@
|
|
2018
2070
|
var choice=$(
|
2019
2071
|
"<li class='select2-search-choice'>" +
|
2020
2072
|
" <div></div>" +
|
2021
|
-
" <a href='
|
2073
|
+
" <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a>" +
|
2022
2074
|
"</li>"),
|
2023
2075
|
id = this.id(data),
|
2024
2076
|
val = this.getVal(),
|
2025
2077
|
formatted;
|
2026
2078
|
|
2027
2079
|
formatted=this.opts.formatSelection(data, choice);
|
2028
|
-
choice.find("div").replaceWith("<div>"+escapeMarkup(formatted)+"</div>");
|
2080
|
+
choice.find("div").replaceWith("<div>"+this.opts.escapeMarkup(formatted)+"</div>");
|
2029
2081
|
choice.find(".select2-search-choice-close")
|
2030
2082
|
.bind("mousedown", killEvent)
|
2031
2083
|
.bind("click dblclick", this.bind(function (e) {
|
2032
2084
|
if (!this.enabled) return;
|
2033
2085
|
|
2034
|
-
$(e.target).closest(".select2-search-choice").fadeOut('fast'
|
2086
|
+
$(e.target).closest(".select2-search-choice").fadeOut('fast', this.bind(function(){
|
2035
2087
|
this.unselect($(e.target));
|
2036
2088
|
this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
|
2037
2089
|
this.close();
|
@@ -2309,14 +2361,14 @@
|
|
2309
2361
|
return markup.join("");
|
2310
2362
|
},
|
2311
2363
|
formatSelection: function (data, container) {
|
2312
|
-
return data.text;
|
2364
|
+
return data ? data.text : undefined;
|
2313
2365
|
},
|
2314
2366
|
formatResultCssClass: function(data) {return undefined;},
|
2315
2367
|
formatNoMatches: function () { return "No matches found"; },
|
2316
2368
|
formatInputTooShort: function (input, min) { return "Please enter " + (min - input.length) + " more characters"; },
|
2317
|
-
formatSelectionTooBig: function (limit) { return "You can only select " + limit + "
|
2369
|
+
formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
|
2318
2370
|
formatLoadMore: function (pageNumber) { return "Loading more results..."; },
|
2319
|
-
|
2371
|
+
formatSearching: function () { return "Searching..."; },
|
2320
2372
|
minimumResultsForSearch: 0,
|
2321
2373
|
minimumInputLength: 0,
|
2322
2374
|
maximumSelectionSize: 0,
|
@@ -2326,7 +2378,14 @@
|
|
2326
2378
|
},
|
2327
2379
|
separator: ",",
|
2328
2380
|
tokenSeparators: [],
|
2329
|
-
tokenizer: defaultTokenizer
|
2381
|
+
tokenizer: defaultTokenizer,
|
2382
|
+
escapeMarkup: function (markup) {
|
2383
|
+
if (markup && typeof(markup) === "string") {
|
2384
|
+
return markup.replace(/&/g, "&");
|
2385
|
+
}
|
2386
|
+
return markup;
|
2387
|
+
},
|
2388
|
+
blurOnChange: false
|
2330
2389
|
};
|
2331
2390
|
|
2332
2391
|
// exports
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
Version: 3.
|
2
|
+
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
|
3
3
|
*/
|
4
4
|
.select2-container {
|
5
5
|
position: relative;
|
@@ -509,3 +509,16 @@ disabled look for already selected choices in the results dropdown
|
|
509
509
|
.select2-result-unselectable .select2-match { text-decoration: none; }
|
510
510
|
|
511
511
|
.select2-offscreen { position: absolute; left: -10000px; }
|
512
|
+
|
513
|
+
/* Retina-ize icons */
|
514
|
+
|
515
|
+
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
|
516
|
+
.select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b {
|
517
|
+
background-image: image-url(select2x2.png) !important;
|
518
|
+
background-repeat: no-repeat !important;
|
519
|
+
background-size: 60px 40px !important;
|
520
|
+
}
|
521
|
+
.select2-search input {
|
522
|
+
background-position: 100% -21px !important;
|
523
|
+
}
|
524
|
+
}
|
metadata
CHANGED
@@ -1,91 +1,86 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: select2-rails
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 3
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 3.2.0
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Rogerio Medeiros
|
9
13
|
- Pedro Nascimento
|
10
14
|
autorequire:
|
11
15
|
bindir: bin
|
12
16
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '0.14'
|
17
|
+
|
18
|
+
date: 2012-09-24 00:00:00 -03:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
23
22
|
type: :runtime
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 14
|
30
|
+
version: "0.14"
|
31
|
+
name: thor
|
32
|
+
requirement: *id001
|
24
33
|
prerelease: false
|
25
|
-
|
26
|
-
|
27
|
-
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
type: :development
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
28
38
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
-
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 1
|
42
|
+
- 0
|
43
|
+
version: "1.0"
|
32
44
|
name: bundler
|
33
|
-
requirement:
|
34
|
-
none: false
|
35
|
-
requirements:
|
36
|
-
- - ~>
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '1.0'
|
39
|
-
type: :development
|
45
|
+
requirement: *id002
|
40
46
|
prerelease: false
|
41
|
-
|
42
|
-
|
43
|
-
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
type: :development
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
44
51
|
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
-
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 3
|
55
|
+
- 0
|
56
|
+
version: "3.0"
|
48
57
|
name: rails
|
49
|
-
requirement:
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '3.0'
|
55
|
-
type: :development
|
58
|
+
requirement: *id003
|
56
59
|
prerelease: false
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
type: :development
|
62
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
60
64
|
- - ~>
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
-
-
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
segments:
|
67
|
+
- 2
|
68
|
+
- 2
|
69
|
+
version: "2.2"
|
64
70
|
name: httpclient
|
65
|
-
requirement:
|
66
|
-
none: false
|
67
|
-
requirements:
|
68
|
-
- - ~>
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '2.2'
|
71
|
-
type: :development
|
71
|
+
requirement: *id004
|
72
72
|
prerelease: false
|
73
|
-
|
74
|
-
|
75
|
-
requirements:
|
76
|
-
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '2.2'
|
79
|
-
description: Select2 is a jQuery based replacement for select boxes. It supports searching,
|
80
|
-
remote data sets, and infinite scrolling of results. This gem integrates Select2
|
81
|
-
with Rails asset pipeline for easy of use.
|
82
|
-
email:
|
73
|
+
description: Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results. This gem integrates Select2 with Rails asset pipeline for easy of use.
|
74
|
+
email:
|
83
75
|
- argerim@gmail.com
|
84
76
|
- pnascimento@gmail.com
|
85
77
|
executables: []
|
78
|
+
|
86
79
|
extensions: []
|
80
|
+
|
87
81
|
extra_rdoc_files: []
|
88
|
-
|
82
|
+
|
83
|
+
files:
|
89
84
|
- .gitignore
|
90
85
|
- Gemfile
|
91
86
|
- LICENSE
|
@@ -97,37 +92,39 @@ files:
|
|
97
92
|
- lib/select2-rails/version.rb
|
98
93
|
- select2-rails.gemspec
|
99
94
|
- vendor/assets/images/select2.png
|
95
|
+
- vendor/assets/images/select2x2.png
|
100
96
|
- vendor/assets/images/spinner.gif
|
101
97
|
- vendor/assets/javascripts/select2.js
|
102
98
|
- vendor/assets/stylesheets/select2.css.scss
|
99
|
+
has_rdoc: true
|
103
100
|
homepage: https://github.com/argerim/select2-rails
|
104
101
|
licenses: []
|
102
|
+
|
105
103
|
post_install_message:
|
106
104
|
rdoc_options: []
|
107
|
-
|
105
|
+
|
106
|
+
require_paths:
|
108
107
|
- lib
|
109
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
version: '0'
|
115
|
-
segments:
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
segments:
|
116
113
|
- 0
|
117
|
-
|
118
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
version: '0'
|
124
|
-
segments:
|
114
|
+
version: "0"
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
segments:
|
125
120
|
- 0
|
126
|
-
|
121
|
+
version: "0"
|
127
122
|
requirements: []
|
123
|
+
|
128
124
|
rubyforge_project:
|
129
|
-
rubygems_version: 1.
|
125
|
+
rubygems_version: 1.3.6
|
130
126
|
signing_key:
|
131
127
|
specification_version: 3
|
132
128
|
summary: Integrate Select2 javascript library with Rails asset pipeline
|
133
129
|
test_files: []
|
130
|
+
|