client_side_validations 4.2.11 → 4.2.12

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: 1e8b7b85a661425cfac3b38f15b96a273561c4f0
4
- data.tar.gz: 325fa1311d5d869af1a0da27217ad4f64df5f226
3
+ metadata.gz: 3d645b444078a494c8ee5cc8bfd309dbb0333e29
4
+ data.tar.gz: 9c9d3a9eb0a97533b8e1ee7c9330748769b45526
5
5
  SHA512:
6
- metadata.gz: fc6e52713b743f1cd307b8531718ab1076158c478d463bff62a5dedbb0a5a9ff38e2b2bd81c974fa1cd3129abc05d0f8999e60314b8115598e62a794bed8bb32
7
- data.tar.gz: 23983f27530ca135ba03380a05ed237f528f66c8f242301be38329b3785c561242c6ee27ce539b2fca28f57d155770b7b11e79fb3cf8e36a6bd4911b440c6eac
6
+ metadata.gz: 723c05eda13d578f4da7970b096459709da53b08653e08d5cead6ac01c9170cc221465fe0cd63bd75b85e721a44928952477df7cf1762a50747277b13ca77bea
7
+ data.tar.gz: 2987e1b5145e88236dac5de8d6540f586177dc00840c302bb796a76b4ba7d22333858461c99cb600927ca1f1e42a06bba2720aaf05be3cddc0f99b468b48741a
data/README.md CHANGED
@@ -145,6 +145,23 @@ In the above case only the `presence` validator will be passed to the client.
145
145
 
146
146
  This is also the case with [other supported conditional validations](http://guides.rubyonrails.org/v4.2.0/active_record_validations.html#conditional-validation) (such as Procs, Arrays or Strings).
147
147
 
148
+ **NOTE:** when `:if` conditional includes a symbol or a string with
149
+ `changed?` in it, validator will forced automatically.
150
+
151
+ ```ruby
152
+ class Person < ActiveRecord::Base
153
+ validates :name, presence: true, if: :name_changed?
154
+ end
155
+ ```
156
+
157
+ The presence of name in the example above will be validated
158
+ without explicit forcing.
159
+
160
+ This is done because it is always assumed the value will change on the
161
+ form.
162
+
163
+ Conditionals defined with `:unless` key do not have this optimization.
164
+
148
165
  ### Turning off validators ###
149
166
 
150
167
  If you wish to skip validations on a given attribute force it to `false`:
@@ -108,11 +108,13 @@ module ClientSideValidations
108
108
  def build_validation_options(method, options = {})
109
109
  return unless @options[:validate]
110
110
 
111
- index = @default_options[:index].present? ? "[#{@default_options[:index]}]" : ''
112
- name = options[:name] || "#{@object_name}#{index}[#{method}]"
111
+ index = @default_options[:index].present? ? "[#{@default_options[:index]}]" : ''
113
112
  child_index = @options[:child_index] ? "(\\d+|#{Regexp.escape(@options[:child_index].to_s)})" : '\\d+'
113
+
114
+ name = options[:name] || "#{@object_name}#{index}[#{method}]"
114
115
  name = name.to_s.gsub(/_attributes\]\[#{child_index}\]/, '_attributes][]')
115
- name = "#{name}#{options[:multiple] ? '[]' : nil}"
116
+ name << '[]' if options[:multiple]
117
+
116
118
  @options[:validators][@object][method] = { name: name, options: options[:validate] }
117
119
  end
118
120
  end
@@ -145,8 +145,7 @@ end
145
145
  ActiveModel::Validator.send(:include, ClientSideValidations::ActiveModel::Validator)
146
146
  ActiveModel::Validations.send(:include, ClientSideValidations::ActiveModel::Validations)
147
147
 
148
- %w(absence acceptance exclusion inclusion length format numericality presence).each do |validator|
149
- require "client_side_validations/active_model/#{validator}"
150
- validator.capitalize!
148
+ %w(Absence Acceptance Exclusion Format Inclusion Length Numericality Presence).each do |validator|
149
+ require "client_side_validations/active_model/#{validator.downcase}"
151
150
  ActiveModel::Validations.const_get("#{validator}Validator").send :include, ClientSideValidations::ActiveModel.const_get(validator)
152
151
  end
@@ -26,9 +26,9 @@ module ClientSideValidations
26
26
  raise ArgumentError, 'Missing argument'
27
27
  end
28
28
  when String
29
- # rubocop:disable Lint/Eval'
29
+ # rubocop:disable Security/Eval'
30
30
  l = eval "lambda { |value| #{conditional} }"
31
- # rubocop:enable Lint/Eval'
31
+ # rubocop:enable Security/Eval'
32
32
  instance_exec(nil, &l)
33
33
  when Symbol
34
34
  send conditional
@@ -2,11 +2,10 @@ require 'client_side_validations/active_model'
2
2
  require 'client_side_validations/middleware'
3
3
  require 'client_side_validations/active_record/middleware'
4
4
 
5
- %w(uniqueness).each do |validator|
6
- require "client_side_validations/active_record/#{validator}"
7
- validator.capitalize!
8
- ActiveRecord::Validations.const_get("#{validator}Validator").send :include, ClientSideValidations::ActiveRecord.const_get(validator)
9
- end
10
-
11
5
  ActiveRecord::Base.send(:include, ClientSideValidations::ActiveModel::Validations)
12
6
  ClientSideValidations::Middleware::Uniqueness.register_orm(ClientSideValidations::ActiveRecord::Middleware)
7
+
8
+ %w(Uniqueness).each do |validator|
9
+ require "client_side_validations/active_record/#{validator.downcase}"
10
+ ActiveRecord::Validations.const_get("#{validator}Validator").send :include, ClientSideValidations::ActiveRecord.const_get(validator)
11
+ end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ClientSideValidations
3
- VERSION = '4.2.11'.freeze
3
+ VERSION = '4.2.12'.freeze
4
4
  end
@@ -1,7 +1,7 @@
1
1
 
2
2
  /*!
3
- * Client Side Validations - v4.2.11 (https://github.com/DavyJonesLocker/client_side_validations)
4
- * Copyright (c) 2016 Geremia Taglialatela, Brian Cardarella
3
+ * Client Side Validations - v4.2.12 (https://github.com/DavyJonesLocker/client_side_validations)
4
+ * Copyright (c) 2017 Geremia Taglialatela, Brian Cardarella
5
5
  * Licensed under MIT (http://opensource.org/licenses/mit-license.php)
6
6
  */
7
7
 
@@ -56,7 +56,7 @@
56
56
  for (validator_name in validators) {
57
57
  validator = validators[validator_name];
58
58
  if (validator_name.match("\\[" + captures[1] + "\\].*\\[\\]\\[" + captures[2] + "\\]$")) {
59
- name = name.replace(/\[[\da-z_]+\]\[(\w+)\]$/g, "[][$1]");
59
+ name = name.replace(/\[[\da-z_]+\]\[(\w+)\]$/g, '[][$1]');
60
60
  }
61
61
  }
62
62
  }
@@ -118,7 +118,7 @@
118
118
  };
119
119
  if (element.attr('name').search(/\[([^\]]*?)\]$/) >= 0) {
120
120
  destroyInputName = element.attr('name').replace(/\[([^\]]*?)\]$/, '[_destroy]');
121
- if ($("input[name='" + destroyInputName + "']").val() === "1") {
121
+ if ($("input[name='" + destroyInputName + "']").val() === '1') {
122
122
  passElement();
123
123
  return afterValidate();
124
124
  }
@@ -342,7 +342,7 @@
342
342
  }
343
343
  return options.messages.numericality;
344
344
  }
345
- val = val.replace(new RegExp("\\" + ClientSideValidations.number_format.delimiter, 'g'), "").replace(new RegExp("\\" + ClientSideValidations.number_format.separator, 'g'), ".");
345
+ val = val.replace(new RegExp("\\" + ClientSideValidations.number_format.delimiter, 'g'), '').replace(new RegExp("\\" + ClientSideValidations.number_format.separator, 'g'), '.');
346
346
  if (options.only_integer && !/^[+-]?\d+$/.test(val)) {
347
347
  return options.messages.only_integer;
348
348
  }
@@ -484,7 +484,7 @@
484
484
  if (name_prefix && name_suffix) {
485
485
  form = element.closest('form');
486
486
  valid = true;
487
- form.find(':input[name^="' + name_prefix + '"][name$="' + name_suffix + '"]').each(function() {
487
+ form.find(":input[name^=\"" + name_prefix + "\"][name$=\"" + name_suffix + "\"]").each(function() {
488
488
  if ($(this).attr('name') !== name) {
489
489
  if ($(this).val() === value) {
490
490
  valid = false;
@@ -548,7 +548,7 @@
548
548
  name = element.attr('name');
549
549
  }
550
550
  if (options['class']) {
551
- name = options['class'] + '[' + name.split('[')[1];
551
+ name = options['class'] + "[" + (name.split('[')[1]);
552
552
  }
553
553
  data[name] = element.val();
554
554
  if ($.ajax({
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: client_side_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.11
4
+ version: 4.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geremia Taglialatela
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-08 00:00:00.000000000 Z
12
+ date: 2017-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -105,14 +105,14 @@ dependencies:
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: 0.8.17
108
+ version: 0.8.18
109
109
  type: :development
110
110
  prerelease: false
111
111
  version_requirements: !ruby/object:Gem::Requirement
112
112
  requirements:
113
113
  - - "~>"
114
114
  - !ruby/object:Gem::Version
115
- version: 0.8.17
115
+ version: 0.8.18
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: m
118
118
  requirement: !ruby/object:Gem::Requirement
@@ -181,14 +181,14 @@ dependencies:
181
181
  requirements:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
- version: 0.46.0
184
+ version: 0.47.1
185
185
  type: :development
186
186
  prerelease: false
187
187
  version_requirements: !ruby/object:Gem::Requirement
188
188
  requirements:
189
189
  - - "~>"
190
190
  - !ruby/object:Gem::Version
191
- version: 0.46.0
191
+ version: 0.47.1
192
192
  - !ruby/object:Gem::Dependency
193
193
  name: simplecov
194
194
  requirement: !ruby/object:Gem::Requirement
@@ -281,7 +281,6 @@ executables: []
281
281
  extensions: []
282
282
  extra_rdoc_files: []
283
283
  files:
284
- - HISTORY.md
285
284
  - README.md
286
285
  - lib/client_side_validations.rb
287
286
  - lib/client_side_validations/action_view.rb
data/HISTORY.md DELETED
@@ -1,56 +0,0 @@
1
- # ClientSideValidation History
2
-
3
- ## Version 4.2
4
-
5
- * [v4.2.10](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.9...v4.2.10)
6
- * [v4.2.9](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.8...v4.2.9)
7
- * [v4.2.8](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.7...v4.2.8)
8
- * [v4.2.7](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.6...v4.2.7)
9
- * [v4.2.6](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.5...v4.2.6)
10
- * [v4.2.5](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.4...v4.2.5)
11
- * [v4.2.4](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.3...v4.2.4)
12
- * [v4.2.3](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.2...v4.2.3)
13
- * [v4.2.2](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.1...v4.2.2)
14
- * [v4.2.1](https://github.com/DavyJonesLocker/client_side_validations/compare/v4.2.0...v4.2.1)
15
- * [v4.2.0](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.6...v4.2.0)
16
-
17
- ## Version 3.2
18
-
19
- * [v3.2.6](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.5...v3.2.6)
20
- * [v3.2.5](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.4...v3.2.5)
21
- * [v3.2.4](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.3...v3.2.4)
22
- * [v3.2.3](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.2...v3.2.3)
23
- * [v3.2.2](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.1...v3.2.2)
24
- * [v3.2.1](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.2.0...v3.2.1)
25
- * [v3.2.0](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.5...v3.2.0)
26
-
27
- ## Version 3.1
28
-
29
- * [v3.1.5](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.4...v3.1.5)
30
- * [v3.1.4](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.3...v3.1.4)
31
- * [v3.1.3](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.2...v3.1.3)
32
- * [v3.1.2](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.1...v3.1.2)
33
- * [v3.1.1](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.1.0...v3.1.1)
34
- * [v3.1.0](https://github.com/DavyJonesLocker/client_side_validations/compare/badf88aa6a09012900e9275bb01c80f4d19482ce...v3.1.0)
35
-
36
- ## Version 3.0
37
-
38
- * [v3.0.13](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.12...v3.0.13)
39
- * [v3.0.12](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.11...v3.0.12)
40
- * [v3.0.11](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.10...v3.0.11)
41
- * [v3.0.10](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.9...v3.0.10)
42
- * [v3.0.9](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.8...v3.0.9)
43
- * [v3.0.8](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.7...v3.0.8)
44
- * [v3.0.7](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.6...v3.0.7)
45
- * [v3.0.6](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.5...v3.0.6)
46
- * [v3.0.5](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.4...v3.0.5)
47
- * [v3.0.4](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.3...v3.0.4)
48
- * [v3.0.3](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.2...v3.0.3)
49
- * [v3.0.2](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.1...v3.0.2)
50
- * [v3.0.1](https://github.com/DavyJonesLocker/client_side_validations/compare/v3.0.0...v3.0.1)
51
- * [v3.0.0](https://github.com/DavyJonesLocker/client_side_validations/compare/4c6262702e513f1c4c063d36ccc88c0f3071199a...v3.0.0)
52
-
53
- ## Prior to Version 3.0
54
-
55
- This gem was a re-write of the original [ClientSideValidationsgem](https://github.com/dnclabs/client_side_validations).
56
- Versions were not tagged.