select2-rails 3.1.1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
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
|
+
|