jquery-tablesorter 1.23.10 → 1.23.11

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: 3932a063e05a5d7e25e5911e2f083adfe5d42ae9
4
- data.tar.gz: 2b7a51790860330826b96d8768853442f810980e
3
+ metadata.gz: 96d0755bdc61ab6d509abc016331ca4b75390cc6
4
+ data.tar.gz: 1bbe67384b5a4cfc66aaf48c02b95110152537a2
5
5
  SHA512:
6
- metadata.gz: 252269fcce1138445f892f973fd550d57ac86eb20cef4f295c49f5111e8b8191d9d034efd8d34dc883c81f74a07ac72df2c402dd3e0325e55f09784339940c60
7
- data.tar.gz: d5a435c879773961da5d1dac8aff8cfe620d653f4937a753f26ee5a156c3da85c88b8012b9058e3d9c7208131a114694f4efe27ed8436b96df31fbfb1c50f2ed
6
+ metadata.gz: 1a4748a2d053bc0cebdcd0b8cd4658f996d4bb20f0e79b6e313595544ceabddc63816c9c7607146f06536f6dc07bdc20594b834399f0a4c7a873bc80fec8ef00
7
+ data.tar.gz: 372b04ac0a59a028d382e1520a3da4fe4f0247be750c1e5eb03975e7275923091ea42b8ae29e4d05451bb378029e0cffe877a4bd0017a70d983314a207d5bb87
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Simple integration of jQuery tablesorter ([Mottie's fork]) into the asset pipeline.
6
6
 
7
- Current tablesorter version: 2.28.10 (5/16/2017), [documentation]
7
+ Current tablesorter version: 2.28.11 (5/24/2017), [documentation]
8
8
 
9
9
  Any issue associated with the js/css files, please report to [Mottie's fork].
10
10
 
@@ -1,7 +1,7 @@
1
1
  module JqueryTablesorter
2
2
  MAJOR = 1
3
3
  MINOR = 23
4
- TINY = 10
4
+ TINY = 11
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].compact.join('.')
7
7
  end
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 05-16-2017 (v2.28.10)*/
7
+ /*! tablesorter (FORK) - updated 05-24-2017 (v2.28.11)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -16,7 +16,7 @@
16
16
  }
17
17
  }(function(jQuery) {
18
18
 
19
- /*! TableSorter (FORK) v2.28.10 *//*
19
+ /*! TableSorter (FORK) v2.28.11 *//*
20
20
  * Client-side table sorting with ease!
21
21
  * @requires jQuery v1.2.6+
22
22
  *
@@ -40,7 +40,7 @@
40
40
  'use strict';
41
41
  var ts = $.tablesorter = {
42
42
 
43
- version : '2.28.10',
43
+ version : '2.28.11',
44
44
 
45
45
  parsers : [],
46
46
  widgets : [],
@@ -3149,14 +3149,14 @@
3149
3149
 
3150
3150
  })(jQuery);
3151
3151
 
3152
- /*! Widget: columns */
3152
+ /*! Widget: columns - updated 5/24/2017 (v2.28.11) */
3153
3153
  ;(function ($) {
3154
3154
  'use strict';
3155
3155
  var ts = $.tablesorter || {};
3156
3156
 
3157
3157
  ts.addWidget({
3158
3158
  id: 'columns',
3159
- priority: 30,
3159
+ priority: 65,
3160
3160
  options : {
3161
3161
  columns : [ 'primary', 'secondary', 'tertiary' ]
3162
3162
  },
@@ -3228,7 +3228,7 @@
3228
3228
 
3229
3229
  })(jQuery);
3230
3230
 
3231
- /*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
3231
+ /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
3232
3232
  * Requires tablesorter v2.8+ and jQuery 1.7+
3233
3233
  * by Rob Garrison
3234
3234
  */
@@ -4046,9 +4046,6 @@
4046
4046
  if ( event.which === tskeyCodes.escape ) {
4047
4047
  // make sure to restore the last value on escape
4048
4048
  this.value = wo.filter_resetOnEsc ? '' : c.lastSearch[column];
4049
- // live search
4050
- } else if ( liveSearch === false ) {
4051
- return;
4052
4049
  // don't return if the search value is empty ( all rows need to be revealed )
4053
4050
  } else if ( this.value !== '' && (
4054
4051
  // liveSearch can contain a min value length; ignore arrow and meta keys, but allow backspace
@@ -4057,26 +4054,32 @@
4057
4054
  ( event.which !== tskeyCodes.enter && event.which !== tskeyCodes.backSpace &&
4058
4055
  ( event.which < tskeyCodes.space || ( event.which >= tskeyCodes.left && event.which <= tskeyCodes.down ) ) ) ) ) {
4059
4056
  return;
4057
+ // live search
4058
+ } else if ( liveSearch === false ) {
4059
+ if ( this.value !== '' && event.which !== tskeyCodes.enter ) {
4060
+ return;
4061
+ }
4060
4062
  }
4061
4063
  // change event = no delay; last true flag tells getFilters to skip newest timed input
4062
4064
  tsf.searching( table, true, true, column );
4063
4065
  })
4064
4066
  // include change for select - fixes #473
4065
- .bind( 'search change keypress input '.split( ' ' ).join( namespace + ' ' ), function( event ) {
4067
+ .bind( 'search change keypress input blur '.split( ' ' ).join( namespace + ' ' ), function( event ) {
4066
4068
  // don't get cached data, in case data-column changes dynamically
4067
4069
  var column = parseInt( $( this ).attr( 'data-column' ), 10 ),
4070
+ eventType = event.type,
4068
4071
  liveSearch = typeof wo.filter_liveSearch === 'boolean' ?
4069
4072
  wo.filter_liveSearch :
4070
4073
  ts.getColumnData( table, wo.filter_liveSearch, column );
4071
4074
  if ( table.config.widgetOptions.filter_initialized &&
4072
4075
  // immediate search if user presses enter
4073
4076
  ( event.which === tskeyCodes.enter ||
4074
- // immediate search if a "search" is triggered on the input
4075
- event.type === 'search' ||
4077
+ // immediate search if a "search" or "blur" is triggered on the input
4078
+ ( eventType === 'search' || eventType === 'blur' ) ||
4076
4079
  // change & input events must be ignored if liveSearch !== true
4077
- ( event.type === 'change' || event.type === 'input' ) &&
4080
+ ( eventType === 'change' || eventType === 'input' ) &&
4078
4081
  // prevent search if liveSearch is a number
4079
- liveSearch === true &&
4082
+ ( liveSearch === true || liveSearch !== true && event.target.nodeName !== "INPUT" ) &&
4080
4083
  // don't allow 'change' or 'input' event to process if the input value
4081
4084
  // is the same - fixes #685
4082
4085
  this.value !== c.lastSearch[column]
@@ -4085,7 +4088,7 @@
4085
4088
  event.preventDefault();
4086
4089
  // init search with no delay
4087
4090
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
4088
- tsf.searching( table, event.type !== 'keypress', true, column );
4091
+ tsf.searching( table, eventType !== 'keypress', true, column );
4089
4092
  }
4090
4093
  });
4091
4094
  },
@@ -1,4 +1,4 @@
1
- /*! TableSorter (FORK) v2.28.10 *//*
1
+ /*! TableSorter (FORK) v2.28.11 *//*
2
2
  * Client-side table sorting with ease!
3
3
  * @requires jQuery v1.2.6+
4
4
  *
@@ -22,7 +22,7 @@
22
22
  'use strict';
23
23
  var ts = $.tablesorter = {
24
24
 
25
- version : '2.28.10',
25
+ version : '2.28.11',
26
26
 
27
27
  parsers : [],
28
28
  widgets : [],
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 05-16-2017 (v2.28.10)*/
7
+ /*! tablesorter (FORK) - updated 05-24-2017 (v2.28.11)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -329,14 +329,14 @@
329
329
 
330
330
  })(jQuery);
331
331
 
332
- /*! Widget: columns */
332
+ /*! Widget: columns - updated 5/24/2017 (v2.28.11) */
333
333
  ;(function ($) {
334
334
  'use strict';
335
335
  var ts = $.tablesorter || {};
336
336
 
337
337
  ts.addWidget({
338
338
  id: 'columns',
339
- priority: 30,
339
+ priority: 65,
340
340
  options : {
341
341
  columns : [ 'primary', 'secondary', 'tertiary' ]
342
342
  },
@@ -408,7 +408,7 @@
408
408
 
409
409
  })(jQuery);
410
410
 
411
- /*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
411
+ /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
412
412
  * Requires tablesorter v2.8+ and jQuery 1.7+
413
413
  * by Rob Garrison
414
414
  */
@@ -1226,9 +1226,6 @@
1226
1226
  if ( event.which === tskeyCodes.escape ) {
1227
1227
  // make sure to restore the last value on escape
1228
1228
  this.value = wo.filter_resetOnEsc ? '' : c.lastSearch[column];
1229
- // live search
1230
- } else if ( liveSearch === false ) {
1231
- return;
1232
1229
  // don't return if the search value is empty ( all rows need to be revealed )
1233
1230
  } else if ( this.value !== '' && (
1234
1231
  // liveSearch can contain a min value length; ignore arrow and meta keys, but allow backspace
@@ -1237,26 +1234,32 @@
1237
1234
  ( event.which !== tskeyCodes.enter && event.which !== tskeyCodes.backSpace &&
1238
1235
  ( event.which < tskeyCodes.space || ( event.which >= tskeyCodes.left && event.which <= tskeyCodes.down ) ) ) ) ) {
1239
1236
  return;
1237
+ // live search
1238
+ } else if ( liveSearch === false ) {
1239
+ if ( this.value !== '' && event.which !== tskeyCodes.enter ) {
1240
+ return;
1241
+ }
1240
1242
  }
1241
1243
  // change event = no delay; last true flag tells getFilters to skip newest timed input
1242
1244
  tsf.searching( table, true, true, column );
1243
1245
  })
1244
1246
  // include change for select - fixes #473
1245
- .bind( 'search change keypress input '.split( ' ' ).join( namespace + ' ' ), function( event ) {
1247
+ .bind( 'search change keypress input blur '.split( ' ' ).join( namespace + ' ' ), function( event ) {
1246
1248
  // don't get cached data, in case data-column changes dynamically
1247
1249
  var column = parseInt( $( this ).attr( 'data-column' ), 10 ),
1250
+ eventType = event.type,
1248
1251
  liveSearch = typeof wo.filter_liveSearch === 'boolean' ?
1249
1252
  wo.filter_liveSearch :
1250
1253
  ts.getColumnData( table, wo.filter_liveSearch, column );
1251
1254
  if ( table.config.widgetOptions.filter_initialized &&
1252
1255
  // immediate search if user presses enter
1253
1256
  ( event.which === tskeyCodes.enter ||
1254
- // immediate search if a "search" is triggered on the input
1255
- event.type === 'search' ||
1257
+ // immediate search if a "search" or "blur" is triggered on the input
1258
+ ( eventType === 'search' || eventType === 'blur' ) ||
1256
1259
  // change & input events must be ignored if liveSearch !== true
1257
- ( event.type === 'change' || event.type === 'input' ) &&
1260
+ ( eventType === 'change' || eventType === 'input' ) &&
1258
1261
  // prevent search if liveSearch is a number
1259
- liveSearch === true &&
1262
+ ( liveSearch === true || liveSearch !== true && event.target.nodeName !== "INPUT" ) &&
1260
1263
  // don't allow 'change' or 'input' event to process if the input value
1261
1264
  // is the same - fixes #685
1262
1265
  this.value !== c.lastSearch[column]
@@ -1265,7 +1268,7 @@
1265
1268
  event.preventDefault();
1266
1269
  // init search with no delay
1267
1270
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
1268
- tsf.searching( table, event.type !== 'keypress', true, column );
1271
+ tsf.searching( table, eventType !== 'keypress', true, column );
1269
1272
  }
1270
1273
  });
1271
1274
  },
@@ -1,4 +1,4 @@
1
- /*! Parser: dates - updated 8/22/2016 (v2.27.5) */
1
+ /*! Parser: dates - updated 5/24/2017 (v2.28.11) */
2
2
  /* Extract dates using popular natural language date parsers */
3
3
  /*jshint jquery:true */
4
4
  /*global Sugar*/
@@ -6,7 +6,7 @@
6
6
  'use strict';
7
7
 
8
8
  /*! Sugar (https://sugarjs.com/docs/#/DateParsing) */
9
- /* demo: http://jsfiddle.net/Mottie/abkNM/4163/ */
9
+ /* demo: http://jsfiddle.net/Mottie/7z0ss5xn/ */
10
10
  $.tablesorter.addParser({
11
11
  id: 'sugar',
12
12
  is: function() {
@@ -22,7 +22,7 @@
22
22
  });
23
23
 
24
24
  /*! Datejs (http://www.datejs.com/) */
25
- /* demo: http://jsfiddle.net/Mottie/abkNM/4164/ */
25
+ /* demo: http://jsfiddle.net/Mottie/zge0L2u6/ */
26
26
  $.tablesorter.addParser({
27
27
  id: 'datejs',
28
28
  is: function() {
@@ -1,11 +1,11 @@
1
- /*! Widget: columns */
1
+ /*! Widget: columns - updated 5/24/2017 (v2.28.11) */
2
2
  ;(function ($) {
3
3
  'use strict';
4
4
  var ts = $.tablesorter || {};
5
5
 
6
6
  ts.addWidget({
7
7
  id: 'columns',
8
- priority: 30,
8
+ priority: 65,
9
9
  options : {
10
10
  columns : [ 'primary', 'secondary', 'tertiary' ]
11
11
  },
@@ -1,4 +1,4 @@
1
- /*! Widget: cssStickyHeaders - updated 2/9/2015 (v2.19.1) *//*
1
+ /*! Widget: cssStickyHeaders - updated 5/24/2017 (v2.28.11) *//*
2
2
  * Requires a modern browser, tablesorter v2.8+
3
3
  */
4
4
  /*jshint jquery:true, unused:false */
@@ -18,10 +18,11 @@
18
18
  cssStickyHeaders_filteredToTop : true
19
19
  },
20
20
  init : function(table, thisWidget, c, wo) {
21
- var ht, offst, adjustY,
21
+ var offst, adjustY,
22
22
  $table = c.$table,
23
23
  $attach = $(wo.cssStickyHeaders_attachTo),
24
- isIE = 'ActiveXObject' in window, // target all versions of IE
24
+ // target all versions of IE
25
+ isIE = 'ActiveXObject' in window || window.navigator.userAgent.indexOf("Edge") > -1,
25
26
  namespace = c.namespace + 'cssstickyheader ',
26
27
  $thead = $table.children('thead'),
27
28
  $caption = $table.children('caption'),
@@ -29,6 +30,8 @@
29
30
  $parent = $table.parent().closest('table.' + ts.css.table),
30
31
  $parentThead = $parent.length && ts.hasWidget($parent[0], 'cssStickyHeaders') ? $parent.children('thead') : [],
31
32
  borderTopWidth = ( parseInt( $table.css('border-top-width'), 10 ) || 0 ),
33
+ // Fixes for Safari
34
+ tableH = $table.height(),
32
35
  lastCaptionSetting = wo.cssStickyHeaders_addCaption,
33
36
  // table offset top changes while scrolling in FF
34
37
  adjustOffsetTop = false,
@@ -46,9 +49,8 @@
46
49
  if ($caption.length) {
47
50
  // Firefox does not include the caption height when getting the table height
48
51
  // see https://bugzilla.mozilla.org/show_bug.cgi?id=820891, so lets detect it instead of browser sniff
49
- ht = $table.height();
50
52
  $caption.hide();
51
- addCaptionHeight = $table.height() === ht;
53
+ addCaptionHeight = $table.height() === tableH;
52
54
  $caption.show();
53
55
 
54
56
  // Firefox changes the offset().top when translating the table caption
@@ -71,6 +73,12 @@
71
73
  adjustY = $table.offset().top;
72
74
  }
73
75
 
76
+ // Fix for safari, when caption present, table
77
+ // height changes while scrolling
78
+ if ($win.scrollTop() < $caption.outerHeight(true)) {
79
+ tableH = $table.height();
80
+ }
81
+
74
82
  var top = $attach.length ? $attach.offset().top : $win.scrollTop(),
75
83
  // add caption height; include table padding top & border-spacing or text may be above the fold (jQuery UI themes)
76
84
  // border-spacing needed in Firefox, but not webkit... not sure if I should account for that
@@ -78,7 +86,7 @@
78
86
  ( parseInt( $table.css('padding-top'), 10 ) || 0 ) +
79
87
  ( parseInt( $table.css('border-spacing'), 10 ) || 0 ),
80
88
 
81
- bottom = $table.height() + ( addCaptionHeight && wo.cssStickyHeaders_addCaption ? captionHeight : 0 ) -
89
+ bottom = tableH + ( addCaptionHeight && wo.cssStickyHeaders_addCaption ? captionHeight : 0 ) -
82
90
  $thead.height() - ( $table.children('tfoot').height() || 0 ) -
83
91
  ( wo.cssStickyHeaders_addCaption ? captionHeight : ( addCaptionHeight ? 0 : captionHeight ) ),
84
92
 
@@ -1,4 +1,4 @@
1
- /*! Widget: filter - updated 4/18/2017 (v2.28.8) *//*
1
+ /*! Widget: filter - updated 5/24/2017 (v2.28.11) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -816,9 +816,6 @@
816
816
  if ( event.which === tskeyCodes.escape ) {
817
817
  // make sure to restore the last value on escape
818
818
  this.value = wo.filter_resetOnEsc ? '' : c.lastSearch[column];
819
- // live search
820
- } else if ( liveSearch === false ) {
821
- return;
822
819
  // don't return if the search value is empty ( all rows need to be revealed )
823
820
  } else if ( this.value !== '' && (
824
821
  // liveSearch can contain a min value length; ignore arrow and meta keys, but allow backspace
@@ -827,26 +824,32 @@
827
824
  ( event.which !== tskeyCodes.enter && event.which !== tskeyCodes.backSpace &&
828
825
  ( event.which < tskeyCodes.space || ( event.which >= tskeyCodes.left && event.which <= tskeyCodes.down ) ) ) ) ) {
829
826
  return;
827
+ // live search
828
+ } else if ( liveSearch === false ) {
829
+ if ( this.value !== '' && event.which !== tskeyCodes.enter ) {
830
+ return;
831
+ }
830
832
  }
831
833
  // change event = no delay; last true flag tells getFilters to skip newest timed input
832
834
  tsf.searching( table, true, true, column );
833
835
  })
834
836
  // include change for select - fixes #473
835
- .bind( 'search change keypress input '.split( ' ' ).join( namespace + ' ' ), function( event ) {
837
+ .bind( 'search change keypress input blur '.split( ' ' ).join( namespace + ' ' ), function( event ) {
836
838
  // don't get cached data, in case data-column changes dynamically
837
839
  var column = parseInt( $( this ).attr( 'data-column' ), 10 ),
840
+ eventType = event.type,
838
841
  liveSearch = typeof wo.filter_liveSearch === 'boolean' ?
839
842
  wo.filter_liveSearch :
840
843
  ts.getColumnData( table, wo.filter_liveSearch, column );
841
844
  if ( table.config.widgetOptions.filter_initialized &&
842
845
  // immediate search if user presses enter
843
846
  ( event.which === tskeyCodes.enter ||
844
- // immediate search if a "search" is triggered on the input
845
- event.type === 'search' ||
847
+ // immediate search if a "search" or "blur" is triggered on the input
848
+ ( eventType === 'search' || eventType === 'blur' ) ||
846
849
  // change & input events must be ignored if liveSearch !== true
847
- ( event.type === 'change' || event.type === 'input' ) &&
850
+ ( eventType === 'change' || eventType === 'input' ) &&
848
851
  // prevent search if liveSearch is a number
849
- liveSearch === true &&
852
+ ( liveSearch === true || liveSearch !== true && event.target.nodeName !== "INPUT" ) &&
850
853
  // don't allow 'change' or 'input' event to process if the input value
851
854
  // is the same - fixes #685
852
855
  this.value !== c.lastSearch[column]
@@ -855,7 +858,7 @@
855
858
  event.preventDefault();
856
859
  // init search with no delay
857
860
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
858
- tsf.searching( table, event.type !== 'keypress', true, column );
861
+ tsf.searching( table, eventType !== 'keypress', true, column );
859
862
  }
860
863
  });
861
864
  },
@@ -1,4 +1,4 @@
1
- /*! Widget: Pager - updated 4/18/2017 (v2.28.8) */
1
+ /*! Widget: Pager - updated 5/24/2017 (v2.28.11) */
2
2
  /* Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -244,12 +244,15 @@
244
244
  wo = c.widgetOptions,
245
245
  namespace = c.namespace + 'pager',
246
246
  s = wo.pager_selectors;
247
-
248
247
  c.$table
249
248
  .off( namespace )
250
249
  .on( 'filterInit filterStart '.split( ' ' ).join( namespace + ' ' ), function( e, filters ) {
251
250
  p.currentFilters = $.isArray( filters ) ? filters : c.$table.data( 'lastSearch' );
252
251
  var filtersEqual;
252
+ if (p.ajax && e.type === 'filterInit') {
253
+ // ensure pager ajax is called after filter widget has initialized
254
+ return tsp.moveToPage( c, p, false );
255
+ }
253
256
  if (ts.filter.equalFilters) {
254
257
  filtersEqual = ts.filter.equalFilters(c, c.lastSearch, p.currentFilters);
255
258
  } else {
@@ -270,7 +273,6 @@
270
273
  tsp.updateCache( c );
271
274
  }
272
275
  tsp.updatePageDisplay( c, false );
273
- // tsp.moveToPage( c, p, false ); <-- called when applyWidgets is triggered
274
276
  ts.applyWidget( c.table );
275
277
  }
276
278
  })
@@ -1110,7 +1112,7 @@
1110
1112
  p.filteredRows = typeof tmp.filtered !== 'undefined' ? tmp.filtered :
1111
1113
  ( c.debug ? console.error('Pager: no initial filtered page set!') || 0 : 0 );
1112
1114
  tsp.updatePageDisplay( c, false );
1113
- } else if (p.initialized) {
1115
+ } else {
1114
1116
  tsp.getAjax( c );
1115
1117
  }
1116
1118
  } else if ( !p.ajax ) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-tablesorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.10
4
+ version: 1.23.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Lin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-17 00:00:00.000000000 Z
12
+ date: 2017-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties