client_side_validations 3.2.0.rc.2 → 3.2.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.
@@ -35,8 +35,9 @@ module ClientSideValidations::ActionView::Helpers
35
35
  end
36
36
 
37
37
  def validate(*attrs)
38
- attrs.each do |attr|
39
- build_validation_options(attr)
38
+ options = attrs.pop if attrs.last.is_a?(Hash)
39
+ (attrs.present? ? attrs : @object._validators.keys).each do |attr|
40
+ build_validation_options(attr, :validate => options)
40
41
  end
41
42
  nil
42
43
  end
@@ -68,7 +68,6 @@ module ClientSideValidations::ActiveModel
68
68
  # Yeah yeah, #new_record? is not part of ActiveModel :p
69
69
  result = ((self.respond_to?(:new_record?) && validator.options[:on] == (self.new_record? ? :create : :update)) || validator.options[:on].nil?)
70
70
  result = result && validator.kind != :block
71
- result = result && uniqueness_validations_allowed_or_not_applicable?(validator)
72
71
 
73
72
  if validator.options[:if] || validator.options[:unless]
74
73
  if result = can_force_validator?(attr, validator, force)
@@ -108,7 +107,7 @@ module ClientSideValidations::ActiveModel
108
107
  false
109
108
  end
110
109
  else
111
- false
110
+ ::ClientSideValidations::Config.disabled_validators.include?(validator.kind)
112
111
  end
113
112
  end
114
113
 
@@ -133,10 +132,6 @@ module ClientSideValidations::ActiveModel
133
132
  end
134
133
  end
135
134
  end
136
-
137
- def uniqueness_validations_allowed_or_not_applicable?(validator)
138
- validator.kind != :uniqueness || !ClientSideValidations::Config.uniqueness_validator_disabled
139
- end
140
135
  end
141
136
  end
142
137
 
@@ -1,8 +1,9 @@
1
1
  module ClientSideValidations
2
2
  module Config
3
3
  class << self
4
- attr_accessor :uniqueness_validator_disabled
5
- @uniqueness_validator_disabled = false
4
+ attr_accessor :disabled_validators
6
5
  end
6
+
7
+ self.disabled_validators = []
7
8
  end
8
9
  end
@@ -11,11 +11,14 @@ module ClientSideValidations
11
11
  end
12
12
 
13
13
  def call(env)
14
- matches = /^\/validators\/(\w+)$/.match(env['PATH_INFO'])
15
- if !matches || (matches[1] == 'uniqueness' && Config.uniqueness_validator_disabled)
16
- @app.call(env)
14
+ if matches = /^\/validators\/(\w+)$/.match(env['PATH_INFO'])
15
+ if ClientSideValidations::Config.disabled_validators.include?(matches[1].to_sym)
16
+ [500, {'Content-Type' => 'application/json', 'Content-Length' => 0}, ['']]
17
+ else
18
+ "::ClientSideValidations::Middleware::#{matches[1].camelize}".constantize.new(env).response
19
+ end
17
20
  else
18
- "::ClientSideValidations::Middleware::#{matches[1].camelize}".constantize.new(env).response
21
+ @app.call(env)
19
22
  end
20
23
  end
21
24
  end
@@ -1,3 +1,3 @@
1
1
  module ClientSideValidations
2
- VERSION = '3.2.0.rc.2'
2
+ VERSION = '3.2.0'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  # ClientSideValidations Initializer
2
2
 
3
3
  # Uncomment to disable uniqueness validator, possible security issue
4
- # ClientSideValidations::Config.uniqueness_validator_disabled = true
4
+ # ClientSideValidations::Config.disabled_validators = [:uniqueness]
5
5
 
6
6
  # Uncomment the following block if you want each input field to have the validation messages attached.
7
7
  # ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
@@ -12,7 +12,7 @@
12
12
  this.filter('form[data-validate]').each(function() {
13
13
  return ClientSideValidations.enablers.form(this);
14
14
  });
15
- return this.filter(':input').each(function() {
15
+ return this.filter(':input:not(button)').each(function() {
16
16
  return ClientSideValidations.enablers.input(this);
17
17
  });
18
18
  };
@@ -229,7 +229,7 @@
229
229
  };
230
230
  for (event in _ref) {
231
231
  binding = _ref[event];
232
- $input.filter(':enabled:not(:radio):not([id$=_confirmation]):visible').each(function() {
232
+ $input.filter(':enabled:not(:radio):not([id$=_confirmation]):visible:not(button)[name]').each(function() {
233
233
  return $(this).attr('data-validate', true);
234
234
  }).on(event, binding);
235
235
  }
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: 3.2.0.rc.2
5
- prerelease: 6
4
+ version: 3.2.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Cardarella
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-08 00:00:00.000000000 Z
12
+ date: 2012-10-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -223,13 +223,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
223
223
  version: '0'
224
224
  segments:
225
225
  - 0
226
- hash: -4404664315488432309
226
+ hash: 4066478814748043567
227
227
  required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  none: false
229
229
  requirements:
230
- - - ! '>'
230
+ - - ! '>='
231
231
  - !ruby/object:Gem::Version
232
- version: 1.3.1
232
+ version: '0'
233
+ segments:
234
+ - 0
235
+ hash: 4066478814748043567
233
236
  requirements: []
234
237
  rubyforge_project:
235
238
  rubygems_version: 1.8.23