client_side_validations 17.0.0 → 17.1.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
  SHA256:
3
- metadata.gz: d4bcd7d9d20f8b13d6cc5537d879d8f3f76835501d977a585898ce69ad6a6392
4
- data.tar.gz: cb32cc92ff6d52122a7c2990e7c50cf93c4d48fb3a52bfdb51ed5e3cf1c760c2
3
+ metadata.gz: b4d7bd59af2deafbb9031ad8f8e9d8e4c697b98fc80667d86ef236e0fa6a3757
4
+ data.tar.gz: 1d2f1f70cd509d862bec0a348410e40693c679989beac9c65b6741fd21110644
5
5
  SHA512:
6
- metadata.gz: ea2cc5dfe1a81c6b25b7e962ea0d639e44f3e76bf392c5ce1df6db68b4658062236ec6814eb7c3d8cf9335a1f9209e4160b0acdd824b8826d1db7a9ecdde7f50
7
- data.tar.gz: 7ecf8d894db6009a43ffb0d7084cf95e1ddd67b824b170efbf3610b2cd00aca208631159bb9510f68cafd4ca028fdf4ccb36f4c9fcb83cde446f07e21edc35b1
6
+ metadata.gz: efe3f62e8f2e51785e5ba1efa55680b363f19b65729514a8005b2262f786ac34821c8238524cd49854b4145bdc0f346eeb79e69c667ce975352a1c21a626e8e3
7
+ data.tar.gz: da3145b2a0dcde3672e5be485fc165530380772d8b39dcb908f726d964b0025b906bad386300394d698af61adc147802d1af3a6df4c1cd0a5c5bd0f9b9824baf
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 17.1.0 / 2020-10-10
4
+
5
+ * [FEATURE] Allow Ruby 3.0.0
6
+ * [ENHANCEMENT] Test against latest Ruby 2.7.2
7
+ * [ENHANCEMENT] Update QUnit to 2.11.3
8
+ * [ENHANCEMENT] Update development dependencies
9
+
3
10
  ## 17.0.0 / 2020-05-16
4
11
 
5
12
  * [FEATURE] Drop Ruby 2.3 support
data/README.md CHANGED
@@ -543,7 +543,7 @@ on how to properly submit issues and pull requests.
543
543
 
544
544
  ## Legal ##
545
545
 
546
- [DockYard](https://dockyard.com/), LLC © 2012-2019
546
+ [DockYard](https://dockyard.com/), LLC © 2012-2020
547
547
 
548
548
  [@dockyard](https://twitter.com/dockyard)
549
549
 
@@ -98,10 +98,10 @@ module ClientSideValidations
98
98
  def add_validator(validator_hash, validation_hash, name, attr)
99
99
  if validation_hash.key?(attr)
100
100
  validator_hash[name] = validation_hash[attr]
101
- elsif attr.to_s.ends_with?('_id')
101
+ elsif attr.to_s.end_with?('_id')
102
102
  association_name = attr.to_s.gsub(/_id\Z/, '').to_sym
103
103
  add_validator_with_association validator_hash, validation_hash, name, association_name
104
- elsif attr.to_s.ends_with?('_ids')
104
+ elsif attr.to_s.end_with?('_ids')
105
105
  association_name = attr.to_s.gsub(/_ids\Z/, '').pluralize.to_sym
106
106
  add_validator_with_association validator_hash, validation_hash, name, association_name
107
107
  end
@@ -36,9 +36,11 @@ module ClientSideValidations
36
36
  module Validations
37
37
  include ClientSideValidations::ActiveModel::Conditionals
38
38
 
39
+ ATTRIBUTES_DENYLIST = [nil, :block].freeze
40
+
39
41
  def client_side_validation_hash(force = nil)
40
42
  _validators.inject({}) do |attr_hash, attr|
41
- next attr_hash if [nil, :block].include?(attr[0])
43
+ next attr_hash if ATTRIBUTES_DENYLIST.include?(attr[0])
42
44
 
43
45
  validator_hash = validator_hash_for(attr, force)
44
46
 
@@ -91,7 +93,7 @@ module ClientSideValidations
91
93
  end
92
94
 
93
95
  def will_save_change?(options)
94
- options.is_a?(Symbol) && (options.to_s.ends_with?('changed?') || options.to_s.starts_with?('will_save_change_to'))
96
+ options.is_a?(Symbol) && (options.to_s.end_with?('changed?') || options.to_s.start_with?('will_save_change_to'))
95
97
  end
96
98
 
97
99
  def check_conditionals(attr, validator, force)
@@ -7,6 +7,7 @@ module ClientSideValidations
7
7
 
8
8
  def self.included(base)
9
9
  @@option_map.merge!(base::CHECKS.keys.inject({}) { |acc, elem| acc.merge!(elem => elem) })
10
+ super
10
11
  end
11
12
 
12
13
  def client_side_hash(model, attribute, force = nil)
@@ -3,9 +3,7 @@
3
3
  module ClientSideValidations
4
4
  module Config
5
5
  class << self
6
- attr_accessor :disabled_validators
7
- attr_accessor :number_format_with_locale
8
- attr_accessor :root_path
6
+ attr_accessor :disabled_validators, :number_format_with_locale, :root_path
9
7
  end
10
8
 
11
9
  self.disabled_validators = []
@@ -4,7 +4,7 @@
4
4
 
5
5
  module ClientSideValidations
6
6
  module Files
7
- Initializer = File.expand_path(File.dirname(__FILE__) + '/../generators/templates/client_side_validations/initializer.rb')
8
- Javascript = File.expand_path(File.dirname(__FILE__) + '/../../vendor/assets/javascripts/rails.validations.js')
7
+ Initializer = File.expand_path('../generators/templates/client_side_validations/initializer.rb', __dir__)
8
+ Javascript = File.expand_path('../../vendor/assets/javascripts/rails.validations.js', __dir__)
9
9
  end
10
10
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ClientSideValidations
4
- VERSION = '17.0.0'
4
+ VERSION = '17.1.0'
5
5
  end
@@ -4,7 +4,7 @@ module ClientSideValidations
4
4
  module Generators
5
5
  class CopyAssetsGenerator < Rails::Generators::Base
6
6
  def copy_javascript_asset
7
- return unless self.class == CopyAssetsGenerator || copy_assets?
7
+ return unless instance_of?(CopyAssetsGenerator) || copy_assets?
8
8
 
9
9
  assets.each do |asset|
10
10
  source_paths << asset[:path]
@@ -7,10 +7,12 @@
7
7
  (function (global, factory) {
8
8
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
9
9
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
10
- (global = global || self, global.ClientSideValidations = factory(global.$));
10
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ClientSideValidations = factory(global.$));
11
11
  }(this, (function ($) { 'use strict';
12
12
 
13
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
14
16
 
15
17
  function _typeof(obj) {
16
18
  "@babel/helpers - typeof";
@@ -78,25 +80,25 @@
78
80
  input: function input(form) {
79
81
  return {
80
82
  'focusout.ClientSideValidations': function focusoutClientSideValidations() {
81
- $(this).isValid(form.ClientSideValidations.settings.validators);
83
+ $__default['default'](this).isValid(form.ClientSideValidations.settings.validators);
82
84
  },
83
85
  'change.ClientSideValidations': function changeClientSideValidations() {
84
- $(this).data('changed', true);
86
+ $__default['default'](this).data('changed', true);
85
87
  },
86
88
  'element:validate:after.ClientSideValidations': function elementValidateAfterClientSideValidations(eventData) {
87
- ClientSideValidations.callbacks.element.after($(this), eventData);
89
+ ClientSideValidations.callbacks.element.after($__default['default'](this), eventData);
88
90
  },
89
91
  'element:validate:before.ClientSideValidations': function elementValidateBeforeClientSideValidations(eventData) {
90
- ClientSideValidations.callbacks.element.before($(this), eventData);
92
+ ClientSideValidations.callbacks.element.before($__default['default'](this), eventData);
91
93
  },
92
94
  'element:validate:fail.ClientSideValidations': function elementValidateFailClientSideValidations(eventData, message) {
93
- var $element = $(this);
95
+ var $element = $__default['default'](this);
94
96
  ClientSideValidations.callbacks.element.fail($element, message, function () {
95
97
  return form.ClientSideValidations.addError($element, message);
96
98
  }, eventData);
97
99
  },
98
100
  'element:validate:pass.ClientSideValidations': function elementValidatePassClientSideValidations(eventData) {
99
- var $element = $(this);
101
+ var $element = $__default['default'](this);
100
102
  ClientSideValidations.callbacks.element.pass($element, function () {
101
103
  return form.ClientSideValidations.removeError($element);
102
104
  }, eventData);
@@ -116,7 +118,7 @@
116
118
  },
117
119
  enablers: {
118
120
  form: function form(_form2) {
119
- var $form = $(_form2);
121
+ var $form = $__default['default'](_form2);
120
122
  _form2.ClientSideValidations = {
121
123
  settings: $form.data('clientSideValidations'),
122
124
  addError: function addError(element, message) {
@@ -138,23 +140,23 @@
138
140
  });
139
141
  },
140
142
  input: function input(_input) {
141
- var $input = $(_input);
143
+ var $input = $__default['default'](_input);
142
144
  var form = _input.form;
143
- var $form = $(form);
145
+ var $form = $__default['default'](form);
144
146
  var eventsToBind = ClientSideValidations.eventsToBind.input(form);
145
147
 
146
148
  for (var eventName in eventsToBind) {
147
149
  var eventFunction = eventsToBind[eventName];
148
150
  $input.filter(':not(:radio):not([id$=_confirmation])').each(function () {
149
- return $(this).attr('data-validate', true);
151
+ return $__default['default'](this).attr('data-validate', true);
150
152
  }).on(eventName, eventFunction);
151
153
  }
152
154
 
153
155
  $input.filter(':checkbox').on('change.ClientSideValidations', function () {
154
- $(this).isValid(form.ClientSideValidations.settings.validators);
156
+ $__default['default'](this).isValid(form.ClientSideValidations.settings.validators);
155
157
  });
156
158
  $input.filter('[id$=_confirmation]').each(function () {
157
- var $element = $(this);
159
+ var $element = $__default['default'](this);
158
160
  var $elementToConfirm = $form.find('#' + this.id.match(/(.+)_confirmation/)[1] + ':input');
159
161
 
160
162
  if ($elementToConfirm.length) {
@@ -162,7 +164,7 @@
162
164
 
163
165
  for (var _eventName in _eventsToBind) {
164
166
  var _eventFunction = _eventsToBind[_eventName];
165
- $('#' + $element.attr('id')).on(_eventName, _eventFunction);
167
+ $__default['default']('#' + $element.attr('id')).on(_eventName, _eventFunction);
166
168
  }
167
169
  }
168
170
  });
@@ -171,11 +173,11 @@
171
173
  formBuilders: {
172
174
  'ActionView::Helpers::FormBuilder': {
173
175
  add: function add(element, settings, message) {
174
- var form = $(element[0].form);
176
+ var form = $__default['default'](element[0].form);
175
177
 
176
178
  if (element.data('valid') !== false && form.find("label.message[for='" + element.attr('id') + "']")[0] == null) {
177
- var inputErrorField = $(settings.input_tag);
178
- var labelErrorField = $(settings.label_tag);
179
+ var inputErrorField = $__default['default'](settings.input_tag);
180
+ var labelErrorField = $__default['default'](settings.label_tag);
179
181
  var label = form.find("label[for='" + element.attr('id') + "']:not(.message)");
180
182
 
181
183
  if (element.attr('autofocus')) {
@@ -193,11 +195,11 @@
193
195
  form.find("label.message[for='" + element.attr('id') + "']").text(message);
194
196
  },
195
197
  remove: function remove(element, settings) {
196
- var form = $(element[0].form);
197
- var inputErrorFieldClass = $(settings.input_tag).attr('class');
198
+ var form = $__default['default'](element[0].form);
199
+ var inputErrorFieldClass = $__default['default'](settings.input_tag).attr('class');
198
200
  var inputErrorField = element.closest('.' + inputErrorFieldClass.replace(/ /g, '.'));
199
201
  var label = form.find("label[for='" + element.attr('id') + "']:not(.message)");
200
- var labelErrorFieldClass = $(settings.label_tag).attr('class');
202
+ var labelErrorFieldClass = $__default['default'](settings.label_tag).attr('class');
201
203
  var labelErrorField = label.closest('.' + labelErrorFieldClass.replace(/ /g, '.'));
202
204
 
203
205
  if (inputErrorField[0]) {
@@ -222,13 +224,13 @@
222
224
  },
223
225
  validators: {
224
226
  all: function all() {
225
- return $.extend({}, ClientSideValidations.validators.local, ClientSideValidations.validators.remote);
227
+ return $__default['default'].extend({}, ClientSideValidations.validators.local, ClientSideValidations.validators.remote);
226
228
  },
227
229
  local: {},
228
230
  remote: {}
229
231
  },
230
232
  disable: function disable(target) {
231
- var $target = $(target);
233
+ var $target = $__default['default'](target);
232
234
  $target.off('.ClientSideValidations');
233
235
 
234
236
  if ($target.is('form')) {
@@ -236,12 +238,12 @@
236
238
  } else {
237
239
  $target.removeData(['changed', 'valid']);
238
240
  $target.filter(':input').each(function () {
239
- $(this).removeAttr('data-validate');
241
+ $__default['default'](this).removeAttr('data-validate');
240
242
  });
241
243
  }
242
244
  },
243
245
  reset: function reset(form) {
244
- var $form = $(form);
246
+ var $form = $__default['default'](form);
245
247
  ClientSideValidations.disable(form);
246
248
 
247
249
  for (var key in form.ClientSideValidations.settings.validators) {
@@ -253,12 +255,12 @@
253
255
  start: function start() {
254
256
  if (window.Turbolinks != null && window.Turbolinks.supported) {
255
257
  var initializeOnEvent = window.Turbolinks.EVENTS != null ? 'page:change' : 'turbolinks:load';
256
- $(document).on(initializeOnEvent, function () {
257
- return $(ClientSideValidations.selectors.forms).validate();
258
+ $__default['default'](document).on(initializeOnEvent, function () {
259
+ return $__default['default'](ClientSideValidations.selectors.forms).validate();
258
260
  });
259
261
  } else {
260
- $(function () {
261
- return $(ClientSideValidations.selectors.forms).validate();
262
+ $__default['default'](function () {
263
+ return $__default['default'](ClientSideValidations.selectors.forms).validate();
262
264
  });
263
265
  }
264
266
  }
@@ -375,7 +377,7 @@
375
377
 
376
378
  if (validationElement.length === 1) {
377
379
  var numberFormat = $form[0].ClientSideValidations.settings.number_format;
378
- var otherFormattedValue = $.trim(validationElement.val()).replace(new RegExp('\\' + numberFormat.separator, 'g'), '.');
380
+ var otherFormattedValue = $__default['default'].trim(validationElement.val()).replace(new RegExp('\\' + numberFormat.separator, 'g'), '.');
379
381
 
380
382
  if (!isNaN(parseFloat(otherFormattedValue))) {
381
383
  return otherFormattedValue;
@@ -426,9 +428,9 @@
426
428
  return;
427
429
  }
428
430
 
429
- var $form = $(element[0].form);
431
+ var $form = $__default['default'](element[0].form);
430
432
  var numberFormat = $form[0].ClientSideValidations.settings.number_format;
431
- var formattedValue = $.trim(value).replace(new RegExp('\\' + numberFormat.separator, 'g'), '.');
433
+ var formattedValue = $__default['default'].trim(value).replace(new RegExp('\\' + numberFormat.separator, 'g'), '.');
432
434
  return runValidations(formattedValue, $form, options);
433
435
  };
434
436
 
@@ -502,7 +504,7 @@
502
504
 
503
505
  var confirmationLocalValidator = function confirmationLocalValidator(element, options) {
504
506
  var value = element.val();
505
- var confirmationValue = $('#' + element.attr('id') + '_confirmation').val();
507
+ var confirmationValue = $__default['default']('#' + element.attr('id') + '_confirmation').val();
506
508
 
507
509
  if (!options.case_sensitive) {
508
510
  value = value.toLowerCase();
@@ -521,12 +523,12 @@
521
523
  }
522
524
 
523
525
  if (otherValue === value) {
524
- $(currentElement).data('notLocallyUnique', true);
526
+ $__default['default'](currentElement).data('notLocallyUnique', true);
525
527
  return false;
526
528
  }
527
529
 
528
- if ($(currentElement).data('notLocallyUnique')) {
529
- $(currentElement).removeData('notLocallyUnique').data('changed', true);
530
+ if ($__default['default'](currentElement).data('notLocallyUnique')) {
531
+ $__default['default'](currentElement).removeData('notLocallyUnique').data('changed', true);
530
532
  }
531
533
 
532
534
  return true;
@@ -544,7 +546,7 @@
544
546
  var value = element.val();
545
547
  var valid = true;
546
548
  form.find(':input[name^="' + matches[1] + '"][name$="' + matches[2] + '"]').not(element).each(function () {
547
- var otherValue = $(this).val();
549
+ var otherValue = $__default['default'](this).val();
548
550
 
549
551
  if (!isLocallyUnique(this, value, otherValue, options.case_sensitive)) {
550
552
  valid = false;
@@ -569,12 +571,12 @@
569
571
  uniqueness: uniquenessLocalValidator
570
572
  };
571
573
 
572
- $.fn.disableClientSideValidations = function () {
574
+ $__default['default'].fn.disableClientSideValidations = function () {
573
575
  ClientSideValidations.disable(this);
574
576
  return this;
575
577
  };
576
578
 
577
- $.fn.enableClientSideValidations = function () {
579
+ $__default['default'].fn.enableClientSideValidations = function () {
578
580
  var _this = this;
579
581
 
580
582
  var selectors = {
@@ -597,22 +599,22 @@
597
599
  return this;
598
600
  };
599
601
 
600
- $.fn.resetClientSideValidations = function () {
602
+ $__default['default'].fn.resetClientSideValidations = function () {
601
603
  this.filter(ClientSideValidations.selectors.forms).each(function () {
602
604
  return ClientSideValidations.reset(this);
603
605
  });
604
606
  return this;
605
607
  };
606
608
 
607
- $.fn.validate = function () {
609
+ $__default['default'].fn.validate = function () {
608
610
  this.filter(ClientSideValidations.selectors.forms).each(function () {
609
- return $(this).enableClientSideValidations();
611
+ return $__default['default'](this).enableClientSideValidations();
610
612
  });
611
613
  return this;
612
614
  };
613
615
 
614
- $.fn.isValid = function (validators) {
615
- var obj = $(this[0]);
616
+ $__default['default'].fn.isValid = function (validators) {
617
+ var obj = $__default['default'](this[0]);
616
618
 
617
619
  if (obj.is('form')) {
618
620
  return validateForm(obj, validators);
@@ -654,7 +656,7 @@
654
656
  var valid = true;
655
657
  form.trigger('form:validate:before.ClientSideValidations');
656
658
  form.find(ClientSideValidations.selectors.validate_inputs).each(function () {
657
- if (!$(this).isValid(validators)) {
659
+ if (!$__default['default'](this).isValid(validators)) {
658
660
  valid = false;
659
661
  }
660
662
 
@@ -718,7 +720,7 @@
718
720
  if (element.attr('name').search(/\[([^\]]*?)\]$/) >= 0) {
719
721
  var destroyInputName = element.attr('name').replace(/\[([^\]]*?)\]$/, '[_destroy]');
720
722
 
721
- if ($("input[name='" + destroyInputName + "']").val() === '1') {
723
+ if ($__default['default']("input[name='" + destroyInputName + "']").val() === '1') {
722
724
  return true;
723
725
  }
724
726
  }
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: client_side_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 17.0.0
4
+ version: 17.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geremia Taglialatela
8
8
  - Brian Cardarella
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-05-16 00:00:00.000000000 Z
12
+ date: 2020-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -51,14 +51,14 @@ dependencies:
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.2'
54
+ version: '2.3'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.2'
61
+ version: '2.3'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: byebug
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -79,14 +79,14 @@ dependencies:
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.16.0
82
+ version: 0.18.0
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.16.0
89
+ version: 0.18.0
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: m
92
92
  requirement: !ruby/object:Gem::Requirement
@@ -149,56 +149,62 @@ dependencies:
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.83.0
152
+ version: 0.93.0
153
153
  type: :development
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.83.0
159
+ version: 0.93.0
160
160
  - !ruby/object:Gem::Dependency
161
161
  name: rubocop-performance
162
162
  requirement: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '1.5'
166
+ version: '1.8'
167
167
  type: :development
168
168
  prerelease: false
169
169
  version_requirements: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '1.5'
173
+ version: '1.8'
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: rubocop-rails
176
176
  requirement: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '2.5'
180
+ version: '2.8'
181
181
  type: :development
182
182
  prerelease: false
183
183
  version_requirements: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '2.5'
187
+ version: '2.8'
188
188
  - !ruby/object:Gem::Dependency
189
189
  name: simplecov
190
190
  requirement: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: 0.18.5
195
+ - - "<"
196
+ - !ruby/object:Gem::Version
197
+ version: '0.20'
195
198
  type: :development
196
199
  prerelease: false
197
200
  version_requirements: !ruby/object:Gem::Requirement
198
201
  requirements:
199
- - - "~>"
202
+ - - ">="
200
203
  - !ruby/object:Gem::Version
201
204
  version: 0.18.5
205
+ - - "<"
206
+ - !ruby/object:Gem::Version
207
+ version: '0.20'
202
208
  - !ruby/object:Gem::Dependency
203
209
  name: sqlite3
204
210
  requirement: !ruby/object:Gem::Requirement
@@ -233,14 +239,14 @@ dependencies:
233
239
  requirements:
234
240
  - - "~>"
235
241
  - !ruby/object:Gem::Version
236
- version: '2.0'
242
+ version: '2.1'
237
243
  type: :development
238
244
  prerelease: false
239
245
  version_requirements: !ruby/object:Gem::Requirement
240
246
  requirements:
241
247
  - - "~>"
242
248
  - !ruby/object:Gem::Version
243
- version: '2.0'
249
+ version: '2.1'
244
250
  - !ruby/object:Gem::Dependency
245
251
  name: thin
246
252
  requirement: !ruby/object:Gem::Requirement
@@ -304,13 +310,13 @@ metadata:
304
310
  bug_tracker_uri: https://github.com/DavyJonesLocker/client_side_validations/issues
305
311
  changelog_uri: https://github.com/DavyJonesLocker/client_side_validations/blob/master/CHANGELOG.md
306
312
  source_code_uri: https://github.com/DavyJonesLocker/client_side_validations
307
- post_install_message:
313
+ post_install_message:
308
314
  rdoc_options: []
309
315
  require_paths:
310
316
  - lib
311
317
  required_ruby_version: !ruby/object:Gem::Requirement
312
318
  requirements:
313
- - - "~>"
319
+ - - ">="
314
320
  - !ruby/object:Gem::Version
315
321
  version: '2.4'
316
322
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -319,8 +325,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
325
  - !ruby/object:Gem::Version
320
326
  version: '0'
321
327
  requirements: []
322
- rubygems_version: 3.1.2
323
- signing_key:
328
+ rubygems_version: 3.2.0.rc.1
329
+ signing_key:
324
330
  specification_version: 4
325
331
  summary: Client Side Validations
326
332
  test_files: []