jquery-tablesorter 1.27.1 → 1.28.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
  SHA256:
3
- metadata.gz: 1bd9adb71c9df1a41222f59c6fd0d0c1d5769325cd57eab38f508a377f9361e4
4
- data.tar.gz: bfc3d2d1a8aa98bd1895a0317e815af988e704cc2859670fba0b2d24c1d62814
3
+ metadata.gz: 830b3899819445aa19fc8f6521dd96b1f93d29f2f0174f4002fcbb07cb05fd9b
4
+ data.tar.gz: 01f4b388680b02312d0313e999675df972841ecd064e1d039de916666bc0273b
5
5
  SHA512:
6
- metadata.gz: 9c3d287b4a374641eaae240fb431dd2b47a60f0a4f8e9f651d3e785ebdd6dd697dd1bfbb147f727ff58b188a84cb00d918572c857d427292bc6fa07fd62b788f
7
- data.tar.gz: e59a1a9da7f20ed983731d1d1910cf94f8306ee6cdda29f2198def09efa5b34082a436817ccdc79395edc1b08a22a66125f3b14293345e412f2cba4b5017482a
6
+ metadata.gz: 4c94904e281f4fc59accb90aa22261a85812bd1e78fd8c37cd124ba4c703e75d9590966674cd59165ed0255b9f3cb99d3839657b7cfd92c521c61e56e958b2e2
7
+ data.tar.gz: 8c805b3f3405c6c8d30a33ccda04a0bdcf5816f7a74d27944591d99ccc1985623e6636a51b4cb1c03ad25b89b5a936a583e0765e865f43878c8b8c6b590d72ed
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 Jun Lin, Erik-B. Ernst
1
+ Copyright 2011-2013 Jun Lin, 2013-now Erik-B. Ernst
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
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.31.1 (2018-11-20) [documentation]
7
+ Current tablesorter version: 2.32.0 (2024-08-13) [documentation]
8
8
 
9
9
  Any issue associated with the js/css files, please report to [Mottie's fork].
10
10
 
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
 
25
25
  ## Requirements
26
26
 
27
- It should work with Rails 3.2 and higher as well as with ruby 1.9.3 - 2.6.x.
27
+ It should work with Rails 3.2 and higher as well as with ruby 1.9.3 - 3.4.x.
28
28
  Each release is always tested with the latest version of both.
29
29
 
30
30
  ## Usage
@@ -1,7 +1,7 @@
1
1
  module JqueryTablesorter
2
2
  MAJOR = 1
3
- MINOR = 27
4
- TINY = 1
3
+ MINOR = 28
4
+ TINY = 0
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].compact.join('.')
7
7
  end
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * tablesorter (FORK) pager plugin
3
- * updated 2018-08-27 (v2.31.0)
3
+ * updated 2020-03-03 (v2.31.3)
4
4
  */
5
5
  /*jshint browser:true, jquery:true, unused:false */
6
6
  ;(function($) {
@@ -367,7 +367,7 @@
367
367
  sz = p.size === 'all' ? p.totalRows : p.size,
368
368
  s = ( p.page * sz ),
369
369
  e = s + sz,
370
- last = 0, // for cache indexing
370
+ last = -1, // for cache indexing
371
371
  j = 0; // size counter
372
372
  p.cacheIndex = [];
373
373
  for ( i = 0; i < l; i++ ) {
@@ -4,10 +4,10 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 2018-11-20 (v2.31.1)*/
7
+ /*! tablesorter (FORK) - updated 2024-08-13 (v2.32.0)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery) {
10
- /*! TableSorter (FORK) v2.31.1 *//*
10
+ /*! TableSorter (FORK) v2.32.0 *//*
11
11
  * Client-side table sorting with ease!
12
12
  * @requires jQuery v1.2.6+
13
13
  *
@@ -31,7 +31,7 @@
31
31
  'use strict';
32
32
  var ts = $.tablesorter = {
33
33
 
34
- version : '2.31.1',
34
+ version : '2.32.0',
35
35
 
36
36
  parsers : [],
37
37
  widgets : [],
@@ -42,7 +42,7 @@
42
42
  widthFixed : false, // adds colgroup to fix widths of columns
43
43
  showProcessing : false, // show an indeterminate timer icon in the header when the table is sorted or filtered.
44
44
 
45
- headerTemplate : '{content}',// header layout template (HTML ok); {content} = innerHTML, {icon} = <i/> // class from cssIcon
45
+ headerTemplate : '{content}',// header layout template (HTML ok); {content} = innerHTML, {icon} = <i></i> // class from cssIcon
46
46
  onRenderTemplate : null, // function( index, template ) { return template; }, // template is a string
47
47
  onRenderHeader : null, // function( index ) {}, // nothing to return
48
48
 
@@ -58,7 +58,7 @@
58
58
  resort : true, // default setting to trigger a resort after an 'update', 'addRows', 'updateCell', etc has completed
59
59
 
60
60
  // *** sort options
61
- headers : {}, // set sorter, string, empty, locked order, sortInitialOrder, filter, etc.
61
+ headers : null, // set sorter, string, empty, locked order, sortInitialOrder, filter, etc.
62
62
  ignoreCase : true, // ignore case while sorting
63
63
  sortForce : null, // column(s) first sorted; always applied
64
64
  sortList : [], // Initial sort order; applied initially; updated when manually sorted
@@ -991,7 +991,7 @@
991
991
  // instead of setting duplicate span to empty string, use textExtraction to try to get a value
992
992
  // see http://stackoverflow.com/q/36449711/145346
993
993
  txt = c.duplicateSpan || index === 0 ?
994
- val :
994
+ txt :
995
995
  typeof c.textExtraction !== 'string' ?
996
996
  ts.getElementText( c, cell, cacheIndex + index ) || '' :
997
997
  '';
@@ -4203,7 +4203,7 @@
4203
4203
  event.preventDefault();
4204
4204
  // init search with no delay
4205
4205
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
4206
- tsf.searching( table, eventType !== 'keypress', true, column );
4206
+ tsf.searching( table, eventType !== 'keypress' || event.which === tskeyCodes.enter, true, column );
4207
4207
  }
4208
4208
  });
4209
4209
  },
@@ -4278,12 +4278,14 @@
4278
4278
  }
4279
4279
  // return if the last search is the same; but filter === false when updating the search
4280
4280
  // see example-widget-filter.html filter toggle buttons
4281
- if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
4282
- return;
4283
- } else if ( filter === false ) {
4284
- // force filter refresh
4285
- c.lastCombinedFilter = '';
4286
- c.lastSearch = [];
4281
+ if ( tsf.equalFilters(c, c.lastSearch, currentFilters) ) {
4282
+ if ( filter !== false ) {
4283
+ return;
4284
+ } else {
4285
+ // force filter refresh
4286
+ c.lastCombinedFilter = '';
4287
+ c.lastSearch = [];
4288
+ }
4287
4289
  }
4288
4290
  // define filter inside it is false
4289
4291
  filters = filters || [];
@@ -1,4 +1,4 @@
1
- /*! TableSorter (FORK) v2.31.1 *//*
1
+ /*! TableSorter (FORK) v2.32.0 *//*
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.31.1',
25
+ version : '2.32.0',
26
26
 
27
27
  parsers : [],
28
28
  widgets : [],
@@ -33,7 +33,7 @@
33
33
  widthFixed : false, // adds colgroup to fix widths of columns
34
34
  showProcessing : false, // show an indeterminate timer icon in the header when the table is sorted or filtered.
35
35
 
36
- headerTemplate : '{content}',// header layout template (HTML ok); {content} = innerHTML, {icon} = <i/> // class from cssIcon
36
+ headerTemplate : '{content}',// header layout template (HTML ok); {content} = innerHTML, {icon} = <i></i> // class from cssIcon
37
37
  onRenderTemplate : null, // function( index, template ) { return template; }, // template is a string
38
38
  onRenderHeader : null, // function( index ) {}, // nothing to return
39
39
 
@@ -49,7 +49,7 @@
49
49
  resort : true, // default setting to trigger a resort after an 'update', 'addRows', 'updateCell', etc has completed
50
50
 
51
51
  // *** sort options
52
- headers : {}, // set sorter, string, empty, locked order, sortInitialOrder, filter, etc.
52
+ headers : null, // set sorter, string, empty, locked order, sortInitialOrder, filter, etc.
53
53
  ignoreCase : true, // ignore case while sorting
54
54
  sortForce : null, // column(s) first sorted; always applied
55
55
  sortList : [], // Initial sort order; applied initially; updated when manually sorted
@@ -982,7 +982,7 @@
982
982
  // instead of setting duplicate span to empty string, use textExtraction to try to get a value
983
983
  // see http://stackoverflow.com/q/36449711/145346
984
984
  txt = c.duplicateSpan || index === 0 ?
985
- val :
985
+ txt :
986
986
  typeof c.textExtraction !== 'string' ?
987
987
  ts.getElementText( c, cell, cacheIndex + index ) || '' :
988
988
  '';
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 2018-11-20 (v2.31.1)*/
7
+ /*! tablesorter (FORK) - updated 2024-08-13 (v2.32.0)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery) {
10
10
  /*! Widget: storage - updated 2018-03-18 (v2.30.0) */
@@ -1288,7 +1288,7 @@
1288
1288
  event.preventDefault();
1289
1289
  // init search with no delay
1290
1290
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
1291
- tsf.searching( table, eventType !== 'keypress', true, column );
1291
+ tsf.searching( table, eventType !== 'keypress' || event.which === tskeyCodes.enter, true, column );
1292
1292
  }
1293
1293
  });
1294
1294
  },
@@ -1363,12 +1363,14 @@
1363
1363
  }
1364
1364
  // return if the last search is the same; but filter === false when updating the search
1365
1365
  // see example-widget-filter.html filter toggle buttons
1366
- if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
1367
- return;
1368
- } else if ( filter === false ) {
1369
- // force filter refresh
1370
- c.lastCombinedFilter = '';
1371
- c.lastSearch = [];
1366
+ if ( tsf.equalFilters(c, c.lastSearch, currentFilters) ) {
1367
+ if ( filter !== false ) {
1368
+ return;
1369
+ } else {
1370
+ // force filter refresh
1371
+ c.lastCombinedFilter = '';
1372
+ c.lastSearch = [];
1373
+ }
1372
1374
  }
1373
1375
  // define filter inside it is false
1374
1376
  filters = filters || [];
@@ -226,6 +226,10 @@
226
226
  this.value = $( this ).data( 'ts-original-value' );
227
227
  })
228
228
  .on( 'change keyup '.split( ' ' ).join( namespace + ' ' ), 'select, input, textarea', function( event ) {
229
+ // don't use updateCell if this (input) is set to 'parser-false'
230
+ if (this.classList.contains('parser-false')) {
231
+ return;
232
+ }
229
233
  var $row = $( this ).closest( 'tr' ),
230
234
  c = $row.closest( 'table' )[0].config;
231
235
  if ( !c || c && c.ignoreChildRow && $row.hasClass( c.cssChildRow ) ) {
@@ -1,4 +1,4 @@
1
- /* Widget: columnSelector (responsive table widget) - updated 2018-03-18 (v2.30.0) *//*
1
+ /* Widget: columnSelector (responsive table widget) - updated 2018-08-03 (v2.31.2) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Justin Hallett & Rob Garrison
4
4
  */
@@ -399,6 +399,27 @@
399
399
  });
400
400
  }
401
401
  },
402
+
403
+ // Extracted from buildHeaders in core; needed for scroller widget compatibility
404
+ findHeaders : function(c) {
405
+ var indx, $temp,
406
+ sel = '.' + ts.css.scrollerHeader + ' thead > tr > ',
407
+ $headers = $(sel + 'th,' + sel + 'td'),
408
+ result = [];
409
+ for ( indx = 0; indx < c.columns; indx++ ) {
410
+ // Use $headers.parent() in case selectorHeaders doesn't point to the th/td
411
+ $temp = $headers.filter( '[data-column="' + indx + '"]' );
412
+ // target sortable column cells, unless there are none, then use non-sortable cells
413
+ // .last() added in jQuery 1.4; use .filter(':last') to maintain compatibility with jQuery v1.2.6
414
+ result[ indx ] = $temp.length ?
415
+ $temp.not( '.sorter-false' ).length ?
416
+ $temp.not( '.sorter-false' ).filter( ':last' ) :
417
+ $temp.filter( ':last' ) :
418
+ $();
419
+ }
420
+ return result;
421
+ },
422
+
402
423
  adjustColspans: function(c, wo) {
403
424
  var index, cols, col, span, end, $cell,
404
425
  colSel = c.selector,
@@ -409,7 +430,10 @@
409
430
  .add( $(c.namespace + '_extra_table').children( 'thead, tfoot' ).children().children() )
410
431
  // include grouping widget headers (they have colspans!)
411
432
  .add( c.$table.find( '.group-header' ).children() ),
412
- len = $headers.length;
433
+ len = $headers.length,
434
+ $headerIndexed = ts.hasWidget(c.table, 'scroller')
435
+ ? tsColSel.findHeaders(c)
436
+ : c.$headerIndexed;
413
437
  for ( index = 0; index < len; index++ ) {
414
438
  $cell = $headers.eq(index);
415
439
  col = parseInt( $cell.attr('data-column'), 10 ) || $cell[0].cellIndex;
@@ -418,7 +442,7 @@
418
442
  if ( span > 1 ) {
419
443
  for ( cols = col; cols < end; cols++ ) {
420
444
  if ( !autoModeOn && colSel.states[ cols ] === false ||
421
- autoModeOn && c.$headerIndexed[ cols ] && !c.$headerIndexed[ cols ].is(':visible') ) {
445
+ autoModeOn && $headerIndexed[ cols ] && !$headerIndexed[ cols ].is(':visible') ) {
422
446
  span--;
423
447
  }
424
448
  }
@@ -1,4 +1,4 @@
1
- /*! Widget: filter, select2 formatter function - updated 1/18/2018 (v2.29.4) *//*
1
+ /*! Widget: filter, select2 formatter function - updated 12/1/2019 (v2.31.2) *//*
2
2
  * requires: jQuery 1.7.2+, tableSorter (FORK) 2.16+, filter widget 2.16+
3
3
  and select2 v3.4.6+ plugin (this code is NOT compatible with select2 v4+)
4
4
  */
@@ -65,17 +65,18 @@
65
65
  v = v.join('\u0000');
66
66
  }
67
67
  // escape special regex characters (http://stackoverflow.com/a/9310752/145346)
68
- v = v.replace(/[-[\]{}()*+?.,/\\^$|#\s]/g, '\\$&');
68
+ var v_escape = v.replace(/[-[\]{}()*+?.,/\\^$|#]/g, '\\$&');
69
69
  // convert string back into an array
70
70
  if (arry) {
71
71
  v = v.split('\u0000');
72
+ v_escape = v_escape.split('\u0000');
72
73
  }
73
74
  if (!ts.isEmptyObject($cell.find('.select2').data())) {
74
75
  $input
75
76
  // add regex, so we filter exact numbers
76
77
  .val(
77
- $.isArray(v) && v.length && v.join('') !== '' ?
78
- '/(' + matchPrefix + (v || []).join(matchSuffix + '|' + matchPrefix) + matchSuffix + ')/' + flags :
78
+ $.isArray(v_escape) && v_escape.length && v_escape.join('') !== '' ?
79
+ '/(' + matchPrefix + (v_escape || []).join(matchSuffix + '|' + matchPrefix) + matchSuffix + ')/' + flags :
79
80
  ''
80
81
  )
81
82
  .trigger('search');
@@ -887,7 +887,7 @@
887
887
  event.preventDefault();
888
888
  // init search with no delay
889
889
  $( this ).attr( 'data-lastSearchTime', new Date().getTime() );
890
- tsf.searching( table, eventType !== 'keypress', true, column );
890
+ tsf.searching( table, eventType !== 'keypress' || event.which === tskeyCodes.enter, true, column );
891
891
  }
892
892
  });
893
893
  },
@@ -962,12 +962,14 @@
962
962
  }
963
963
  // return if the last search is the same; but filter === false when updating the search
964
964
  // see example-widget-filter.html filter toggle buttons
965
- if ( tsf.equalFilters(c, c.lastSearch, currentFilters) && filter !== false ) {
966
- return;
967
- } else if ( filter === false ) {
968
- // force filter refresh
969
- c.lastCombinedFilter = '';
970
- c.lastSearch = [];
965
+ if ( tsf.equalFilters(c, c.lastSearch, currentFilters) ) {
966
+ if ( filter !== false ) {
967
+ return;
968
+ } else {
969
+ // force filter refresh
970
+ c.lastCombinedFilter = '';
971
+ c.lastSearch = [];
972
+ }
971
973
  }
972
974
  // define filter inside it is false
973
975
  filters = filters || [];
@@ -179,7 +179,7 @@
179
179
  '" unselectable="on" ' + ( c.tabIndex ? 'tabindex="0" ' : '' ) + 'data-group-index="' +
180
180
  data.groupIndex + '">' +
181
181
  '<td colspan="' + c.columns + '">' +
182
- ( wo.group_collapsible ? '<i/>' : '' ) +
182
+ ( wo.group_collapsible ? '<i></i>' : '' ) +
183
183
  '<span class="group-name">' + name + '</span>' +
184
184
  '<span class="group-count"></span>' +
185
185
  '</td></tr>';
@@ -1,4 +1,4 @@
1
- /*! Widget: math - updated 11/20/2018 (v2.31.1) *//*
1
+ /*! Widget: math - updated 12/1/2019 (v2.31.2) *//*
2
2
  * Requires tablesorter v2.16+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -28,7 +28,7 @@
28
28
  events : ( 'tablesorter-initialized update updateAll updateRows addRows updateCell filterReset ' )
29
29
  .split(' ').join('.tsmath '),
30
30
 
31
- processText : function( c, $cell ) {
31
+ processText : function( c, $cell ) {
32
32
  var tmp,
33
33
  wo = c.widgetOptions,
34
34
  txt = ts.getElementText( c, $cell, math.getCellIndex( $cell ) ),
@@ -110,7 +110,7 @@
110
110
  // stop calculating 'above', when encountering another 'above'
111
111
  if ( mathAbove ) {
112
112
  index = 0;
113
- } else if ( $t.length ) {
113
+ } else if ( $t.length && $t.not( mathIgnore ).length ) {
114
114
  arry[ arry.length ] = math.processText( c, $t );
115
115
  }
116
116
  }
@@ -132,7 +132,7 @@
132
132
  });
133
133
  if ( ( hasFilter || !$tr.hasClass( filtered ) ) &&
134
134
  $tr.not( mathIgnore ).length &&
135
- $t.length ) {
135
+ $t.length && $t.not( mathIgnore ) ) {
136
136
  arry[ arry.length ] = math.processText( c, $t );
137
137
  }
138
138
  }
@@ -149,7 +149,8 @@
149
149
  });
150
150
  if ( ( hasFilter || !$tr.hasClass( filtered ) ) &&
151
151
  $t.not( mathAttrs.join( ',' ) ).length &&
152
- !$t.is( $el ) ) {
152
+ !$t.is( $el ) && $t.not( mathIgnore ).length
153
+ ) {
153
154
  arry[ arry.length ] = math.processText( c, $t );
154
155
  }
155
156
  }
@@ -1,4 +1,4 @@
1
- /*! Widget: Pager - updated 2018-08-27 (v2.31.0) */
1
+ /*! Widget: Pager - updated 2020-03-03 (v2.31.3) */
2
2
  /* Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -665,14 +665,14 @@
665
665
  sz = p.size === 'all' ? p.totalRows : p.size,
666
666
  start = ( p.page * sz ),
667
667
  end = start + sz,
668
- last = 0, // for cache indexing
668
+ last = -1, // for cache indexing
669
669
  size = 0; // size counter
670
670
  p.cacheIndex = [];
671
671
  for ( tbodyIndex = 0; tbodyIndex < tbodyLen; tbodyIndex++ ) {
672
672
  $rows = c.$tbodies.eq( tbodyIndex ).children( 'tr' );
673
673
  len = $rows.length;
674
674
  lastIndex = 0;
675
- last = 0; // for cache indexing
675
+ last = -1; // for cache indexing
676
676
  size = 0; // size counter
677
677
  for ( rowIndex = 0; rowIndex < len; rowIndex++ ) {
678
678
  if ( !p.regexFiltered.test( $rows[ rowIndex ].className ) ) {
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-tablesorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.27.1
4
+ version: 1.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Lin
8
8
  - Erik-B. Ernst
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2019-10-07 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: railties
@@ -165,7 +164,6 @@ metadata:
165
164
  bug_tracker_uri: https://github.com/themilkman/jquery-tablesorter-rails/issues
166
165
  changelog_uri: https://github.com/themilkman/jquery-tablesorter-rails/blob/master/CHANGELOG.md
167
166
  source_code_uri: https://github.com/themilkman/jquery-tablesorter-rails
168
- post_install_message:
169
167
  rdoc_options: []
170
168
  require_paths:
171
169
  - lib
@@ -180,8 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
178
  - !ruby/object:Gem::Version
181
179
  version: '0'
182
180
  requirements: []
183
- rubygems_version: 3.0.3
184
- signing_key:
181
+ rubygems_version: 3.6.9
185
182
  specification_version: 4
186
183
  summary: Simple integration of jquery-tablesorter (Mottie's fork) into the Rails asset
187
184
  pipeline.