flashgrid-ext 3.1.0 → 4.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7ed628cb8936e8d19cab4e0c388121df2bc0520c
4
- data.tar.gz: e5311ff2be65c4ca95db9674af1138d2acad4b27
3
+ metadata.gz: fe4115e5ca4f95f9fcc44ef7f9063e0b3c2d4bb2
4
+ data.tar.gz: 5d29f97798f5fb7fe7cbe0b739416e51cd591c57
5
5
  SHA512:
6
- metadata.gz: 161b2d472b3cbc2f06f650baedac4dfa3a2fdb62347e7ab5aa877b51c79df01e97aa25de79ae0391b784170634c5f5fc406f84bd882a890e64399f192e37c1b5
7
- data.tar.gz: 6dda2282b70093662a65c5f1d0a9fbf999e103f8471423929210c79f360b3d0e2d08c9394bf1c540df9a369238ce3c59c7973dce053dde0060807455740b111f
6
+ metadata.gz: c78019f18dfbad10d42cd72f8dd7c112e7f19358961d554a9ec22317de2946a8d184bf788c22cf08db01ba3eeb5c3a631bce09debeb46e52d0d880015bed9da0
7
+ data.tar.gz: 62c48fb507a2cdbb3edd487c5510a98d06417368d29d4365a41fd4a43336440166509f415ffd9e537e70b0e0ddbdd6b333a556462b9e8938a3429cd3ae9074be
@@ -1,5 +1,5 @@
1
1
  module Flashgrid
2
2
  module Ext
3
- VERSION = "3.1.0"
3
+ VERSION = "4.0.0"
4
4
  end
5
5
  end
@@ -4,7 +4,7 @@
4
4
  ************************************/
5
5
 
6
6
  var moment,
7
- VERSION = '2.8.3',
7
+ VERSION = '2.8.4',
8
8
  // the global-scope this is NOT the global object in Node.js
9
9
  globalScope = typeof global !== 'undefined' ? global : this,
10
10
  oldGlobalMoment,
@@ -27,7 +27,7 @@
27
27
  momentProperties = [],
28
28
 
29
29
  // check for nodeJS
30
- hasModule = (typeof module !== 'undefined' && module.exports),
30
+ hasModule = (typeof module !== 'undefined' && module && module.exports),
31
31
 
32
32
  // ASP.NET json date format regex
33
33
  aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
@@ -38,8 +38,8 @@
38
38
  isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
39
39
 
40
40
  // format tokens
41
- formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
42
- localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
41
+ formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,
42
+ localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
43
43
 
44
44
  // parsing token regexes
45
45
  parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
@@ -50,8 +50,8 @@
50
50
  parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
51
51
  parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
52
52
  parseTokenT = /T/i, // T (ISO separator)
53
+ parseTokenOffsetMs = /[\+\-]?\d+/, // 1234567890123
53
54
  parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
54
- parseTokenOrdinal = /\d{1,2}/,
55
55
 
56
56
  //strict parsing regexes
57
57
  parseTokenOneDigit = /\d/, // 0 - 9
@@ -266,6 +266,9 @@
266
266
  zz : function () {
267
267
  return this.zoneName();
268
268
  },
269
+ x : function () {
270
+ return this.valueOf();
271
+ },
269
272
  X : function () {
270
273
  return this.unix();
271
274
  },
@@ -692,7 +695,10 @@
692
695
  overflow =
693
696
  m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
694
697
  m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
695
- m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR :
698
+ m._a[HOUR] < 0 || m._a[HOUR] > 24 ||
699
+ (m._a[HOUR] === 24 && (m._a[MINUTE] !== 0 ||
700
+ m._a[SECOND] !== 0 ||
701
+ m._a[MILLISECOND] !== 0)) ? HOUR :
696
702
  m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
697
703
  m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
698
704
  m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
@@ -719,7 +725,8 @@
719
725
  if (m._strict) {
720
726
  m._isValid = m._isValid &&
721
727
  m._pf.charsLeftOver === 0 &&
722
- m._pf.unusedTokens.length === 0;
728
+ m._pf.unusedTokens.length === 0 &&
729
+ m._pf.bigHour === undefined;
723
730
  }
724
731
  }
725
732
  return m._isValid;
@@ -771,8 +778,18 @@
771
778
 
772
779
  // Return a moment from input, that is local/utc/zone equivalent to model.
773
780
  function makeAs(input, model) {
774
- return model._isUTC ? moment(input).zone(model._offset || 0) :
775
- moment(input).local();
781
+ var res, diff;
782
+ if (model._isUTC) {
783
+ res = model.clone();
784
+ diff = (moment.isMoment(input) || isDate(input) ?
785
+ +input : +moment(input)) - (+res);
786
+ // Use low-level api, because this fn is low-level api.
787
+ res._d.setTime(+res._d + diff);
788
+ moment.updateOffset(res, false);
789
+ return res;
790
+ } else {
791
+ return moment(input).local();
792
+ }
776
793
  }
777
794
 
778
795
  /************************************
@@ -792,6 +809,9 @@
792
809
  this['_' + i] = prop;
793
810
  }
794
811
  }
812
+ // Lenient ordinal parsing accepts just a number in addition to
813
+ // number + (possibly) stuff coming from _ordinalParseLenient.
814
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
795
815
  },
796
816
 
797
817
  _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
@@ -804,22 +824,32 @@
804
824
  return this._monthsShort[m.month()];
805
825
  },
806
826
 
807
- monthsParse : function (monthName) {
827
+ monthsParse : function (monthName, format, strict) {
808
828
  var i, mom, regex;
809
829
 
810
830
  if (!this._monthsParse) {
811
831
  this._monthsParse = [];
832
+ this._longMonthsParse = [];
833
+ this._shortMonthsParse = [];
812
834
  }
813
835
 
814
836
  for (i = 0; i < 12; i++) {
815
837
  // make the regex if we don't have it already
816
- if (!this._monthsParse[i]) {
817
- mom = moment.utc([2000, i]);
838
+ mom = moment.utc([2000, i]);
839
+ if (strict && !this._longMonthsParse[i]) {
840
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
841
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
842
+ }
843
+ if (!strict && !this._monthsParse[i]) {
818
844
  regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
819
845
  this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
820
846
  }
821
847
  // test the regex
822
- if (this._monthsParse[i].test(monthName)) {
848
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
849
+ return i;
850
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
851
+ return i;
852
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
823
853
  return i;
824
854
  }
825
855
  }
@@ -862,6 +892,7 @@
862
892
  },
863
893
 
864
894
  _longDateFormat : {
895
+ LTS : 'h:mm:ss A',
865
896
  LT : 'h:mm A',
866
897
  L : 'MM/DD/YYYY',
867
898
  LL : 'MMMM D, YYYY',
@@ -902,9 +933,9 @@
902
933
  lastWeek : '[Last] dddd [at] LT',
903
934
  sameElse : 'L'
904
935
  },
905
- calendar : function (key, mom) {
936
+ calendar : function (key, mom, now) {
906
937
  var output = this._calendar[key];
907
- return typeof output === 'function' ? output.apply(mom) : output;
938
+ return typeof output === 'function' ? output.apply(mom, [now]) : output;
908
939
  },
909
940
 
910
941
  _relativeTime : {
@@ -939,6 +970,7 @@
939
970
  return this._ordinal.replace('%d', number);
940
971
  },
941
972
  _ordinal : '%d',
973
+ _ordinalParse : /\d{1,2}/,
942
974
 
943
975
  preparse : function (string) {
944
976
  return string;
@@ -1080,6 +1112,8 @@
1080
1112
  case 'a':
1081
1113
  case 'A':
1082
1114
  return config._locale._meridiemParse;
1115
+ case 'x':
1116
+ return parseTokenOffsetMs;
1083
1117
  case 'X':
1084
1118
  return parseTokenTimestampMs;
1085
1119
  case 'Z':
@@ -1114,7 +1148,7 @@
1114
1148
  case 'E':
1115
1149
  return parseTokenOneOrTwoDigits;
1116
1150
  case 'Do':
1117
- return parseTokenOrdinal;
1151
+ return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient;
1118
1152
  default :
1119
1153
  a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
1120
1154
  return a;
@@ -1151,7 +1185,7 @@
1151
1185
  break;
1152
1186
  case 'MMM' : // fall through to MMMM
1153
1187
  case 'MMMM' :
1154
- a = config._locale.monthsParse(input);
1188
+ a = config._locale.monthsParse(input, token, config._strict);
1155
1189
  // if we didn't find a month name, mark the date as invalid.
1156
1190
  if (a != null) {
1157
1191
  datePartArray[MONTH] = a;
@@ -1168,7 +1202,8 @@
1168
1202
  break;
1169
1203
  case 'Do' :
1170
1204
  if (input != null) {
1171
- datePartArray[DATE] = toInt(parseInt(input, 10));
1205
+ datePartArray[DATE] = toInt(parseInt(
1206
+ input.match(/\d{1,2}/)[0], 10));
1172
1207
  }
1173
1208
  break;
1174
1209
  // DAY OF YEAR
@@ -1193,11 +1228,13 @@
1193
1228
  case 'A' :
1194
1229
  config._isPm = config._locale.isPM(input);
1195
1230
  break;
1196
- // 24 HOUR
1197
- case 'H' : // fall through to hh
1198
- case 'HH' : // fall through to hh
1231
+ // HOUR
1199
1232
  case 'h' : // fall through to hh
1200
1233
  case 'hh' :
1234
+ config._pf.bigHour = true;
1235
+ /* falls through */
1236
+ case 'H' : // fall through to HH
1237
+ case 'HH' :
1201
1238
  datePartArray[HOUR] = toInt(input);
1202
1239
  break;
1203
1240
  // MINUTE
@@ -1217,6 +1254,10 @@
1217
1254
  case 'SSSS' :
1218
1255
  datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
1219
1256
  break;
1257
+ // UNIX OFFSET (MILLISECONDS)
1258
+ case 'x':
1259
+ config._d = new Date(toInt(input));
1260
+ break;
1220
1261
  // UNIX TIMESTAMP WITH MS
1221
1262
  case 'X':
1222
1263
  config._d = new Date(parseFloat(input) * 1000);
@@ -1353,12 +1394,25 @@
1353
1394
  config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
1354
1395
  }
1355
1396
 
1397
+ // Check for 24:00:00.000
1398
+ if (config._a[HOUR] === 24 &&
1399
+ config._a[MINUTE] === 0 &&
1400
+ config._a[SECOND] === 0 &&
1401
+ config._a[MILLISECOND] === 0) {
1402
+ config._nextDay = true;
1403
+ config._a[HOUR] = 0;
1404
+ }
1405
+
1356
1406
  config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
1357
1407
  // Apply timezone offset from input. The actual zone can be changed
1358
1408
  // with parseZone.
1359
1409
  if (config._tzm != null) {
1360
1410
  config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm);
1361
1411
  }
1412
+
1413
+ if (config._nextDay) {
1414
+ config._a[HOUR] = 24;
1415
+ }
1362
1416
  }
1363
1417
 
1364
1418
  function dateFromObject(config) {
@@ -1372,7 +1426,7 @@
1372
1426
  config._a = [
1373
1427
  normalizedInput.year,
1374
1428
  normalizedInput.month,
1375
- normalizedInput.day,
1429
+ normalizedInput.day || normalizedInput.date,
1376
1430
  normalizedInput.hour,
1377
1431
  normalizedInput.minute,
1378
1432
  normalizedInput.second,
@@ -1445,6 +1499,10 @@
1445
1499
  config._pf.unusedInput.push(string);
1446
1500
  }
1447
1501
 
1502
+ // clear _12h flag if hour is <= 12
1503
+ if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
1504
+ config._pf.bigHour = undefined;
1505
+ }
1448
1506
  // handle am pm
1449
1507
  if (config._isPm && config._a[HOUR] < 12) {
1450
1508
  config._a[HOUR] += 12;
@@ -1453,7 +1511,6 @@
1453
1511
  if (config._isPm === false && config._a[HOUR] === 12) {
1454
1512
  config._a[HOUR] = 0;
1455
1513
  }
1456
-
1457
1514
  dateFromConfig(config);
1458
1515
  checkOverflow(config);
1459
1516
  }
@@ -1713,7 +1770,8 @@
1713
1770
 
1714
1771
  function makeMoment(config) {
1715
1772
  var input = config._i,
1716
- format = config._f;
1773
+ format = config._f,
1774
+ res;
1717
1775
 
1718
1776
  config._locale = config._locale || moment.localeData(config._l);
1719
1777
 
@@ -1737,7 +1795,14 @@
1737
1795
  makeDateFromInput(config);
1738
1796
  }
1739
1797
 
1740
- return new Moment(config);
1798
+ res = new Moment(config);
1799
+ if (res._nextDay) {
1800
+ // Adding is smart enough around DST
1801
+ res.add(1, 'd');
1802
+ res._nextDay = undefined;
1803
+ }
1804
+
1805
+ return res;
1741
1806
  }
1742
1807
 
1743
1808
  moment = function (input, format, locale, strict) {
@@ -1769,7 +1834,7 @@
1769
1834
  'release. Please refer to ' +
1770
1835
  'https://github.com/moment/moment/issues/1407 for more info.',
1771
1836
  function (config) {
1772
- config._d = new Date(config._i);
1837
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
1773
1838
  }
1774
1839
  );
1775
1840
 
@@ -2081,7 +2146,12 @@
2081
2146
  toISOString : function () {
2082
2147
  var m = moment(this).utc();
2083
2148
  if (0 < m.year() && m.year() <= 9999) {
2084
- return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
2149
+ if ('function' === typeof Date.prototype.toISOString) {
2150
+ // native implementation is ~50x faster, use it when we can
2151
+ return this.toDate().toISOString();
2152
+ } else {
2153
+ return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
2154
+ }
2085
2155
  } else {
2086
2156
  return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
2087
2157
  }
@@ -2200,7 +2270,7 @@
2200
2270
  diff < 1 ? 'sameDay' :
2201
2271
  diff < 2 ? 'nextDay' :
2202
2272
  diff < 7 ? 'nextWeek' : 'sameElse';
2203
- return this.format(this.localeData().calendar(format, this));
2273
+ return this.format(this.localeData().calendar(format, this, moment(now)));
2204
2274
  },
2205
2275
 
2206
2276
  isLeapYear : function () {
@@ -2269,36 +2339,45 @@
2269
2339
 
2270
2340
  endOf: function (units) {
2271
2341
  units = normalizeUnits(units);
2342
+ if (units === undefined || units === 'millisecond') {
2343
+ return this;
2344
+ }
2272
2345
  return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
2273
2346
  },
2274
2347
 
2275
2348
  isAfter: function (input, units) {
2349
+ var inputMs;
2276
2350
  units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
2277
2351
  if (units === 'millisecond') {
2278
2352
  input = moment.isMoment(input) ? input : moment(input);
2279
2353
  return +this > +input;
2280
2354
  } else {
2281
- return +this.clone().startOf(units) > +moment(input).startOf(units);
2355
+ inputMs = moment.isMoment(input) ? +input : +moment(input);
2356
+ return inputMs < +this.clone().startOf(units);
2282
2357
  }
2283
2358
  },
2284
2359
 
2285
2360
  isBefore: function (input, units) {
2361
+ var inputMs;
2286
2362
  units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
2287
2363
  if (units === 'millisecond') {
2288
2364
  input = moment.isMoment(input) ? input : moment(input);
2289
2365
  return +this < +input;
2290
2366
  } else {
2291
- return +this.clone().startOf(units) < +moment(input).startOf(units);
2367
+ inputMs = moment.isMoment(input) ? +input : +moment(input);
2368
+ return +this.clone().endOf(units) < inputMs;
2292
2369
  }
2293
2370
  },
2294
2371
 
2295
2372
  isSame: function (input, units) {
2373
+ var inputMs;
2296
2374
  units = normalizeUnits(units || 'millisecond');
2297
2375
  if (units === 'millisecond') {
2298
2376
  input = moment.isMoment(input) ? input : moment(input);
2299
2377
  return +this === +input;
2300
2378
  } else {
2301
- return +this.clone().startOf(units) === +makeAs(input, this).startOf(units);
2379
+ inputMs = +moment(input);
2380
+ return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
2302
2381
  }
2303
2382
  },
2304
2383
 
@@ -2475,7 +2554,7 @@
2475
2554
  },
2476
2555
 
2477
2556
  lang : deprecate(
2478
- 'moment().lang() is deprecated. Use moment().localeData() instead.',
2557
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
2479
2558
  function (key) {
2480
2559
  if (key === undefined) {
2481
2560
  return this.localeData();
@@ -2696,7 +2775,7 @@
2696
2775
  return units === 'month' ? months : months / 12;
2697
2776
  } else {
2698
2777
  // handle milliseconds separately because of floating point math errors (issue #1867)
2699
- days = this._days + yearsToDays(this._months / 12);
2778
+ days = this._days + Math.round(yearsToDays(this._months / 12));
2700
2779
  switch (units) {
2701
2780
  case 'week': return days / 7 + this._milliseconds / 6048e5;
2702
2781
  case 'day': return days + this._milliseconds / 864e5;
@@ -2798,6 +2877,7 @@
2798
2877
 
2799
2878
  // Set default locale, other locale will inherit from English.
2800
2879
  moment.locale('en', {
2880
+ ordinalParse: /\d{1,2}(th|st|nd|rd)/,
2801
2881
  ordinal : function (number) {
2802
2882
  var b = number % 10,
2803
2883
  output = (toInt(number % 100 / 10) === 1) ? 'th' :
@@ -6,28 +6,33 @@
6
6
  /* #Aside
7
7
  ================================================== */
8
8
  .aside-backdrop {
9
- background: rgba(71,74,84,1);
9
+ background: rgba(71,74,84,0.8);
10
10
  bottom: 0;
11
+ height: 100%;
11
12
  left: 0;
13
+ min-height: 100%;
12
14
  position: fixed;
13
15
  right: 0;
14
16
  top: 0;
15
17
  z-index: 1040;
16
18
  }
17
- .aside-backdrop.fade { opacity: 0; }
18
- .aside-backdrop,
19
+ .aside-backdrop.fade {
20
+ filter: alpha(opacity=0);
21
+ opacity: 0;
22
+ }
19
23
  .aside-backdrop.fade.in {
20
- opacity: 0.8;
21
- filter: alpha(opacity=80);
24
+ filter: alpha(opacity=100);
25
+ opacity: 1;
22
26
  }
23
27
  .aside {
24
28
  background-clip: padding-box;
25
29
  background: rgba(255,255,255,1);
26
30
  box-shadow: 0 0 3px rgba(0,0,0,0.25);
31
+ display: none;
27
32
  height: 100%;
28
33
  left: initial;
29
34
  margin-left: 0;
30
- outline: none;
35
+ outline: 0;
31
36
  position: fixed;
32
37
  right: 0;
33
38
  top: 0;
@@ -85,6 +90,7 @@
85
90
  position: absolute;
86
91
  width: 524px;
87
92
  top: 0;
93
+ z-index: 1051;
88
94
  }
89
95
  .aside-body p:last-child { margin-bottom: 0; }
90
96
  .aside-footer {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flashgrid-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-14 00:00:00.000000000 Z
11
+ date: 2014-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  version: '0'
87
87
  requirements: []
88
88
  rubyforge_project:
89
- rubygems_version: 2.4.2
89
+ rubygems_version: 2.4.5
90
90
  signing_key:
91
91
  specification_version: 4
92
92
  summary: Flashgrid Extensions