flashgrid-ext 3.1.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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