validatious-on-rails 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/generators/validatious/templates/v2.rails.js +35 -0
  2. data/lib/validatious-on-rails/model_validations.rb +45 -32
  3. data/lib/validatious-on-rails/validatious/client_side_validator.rb +1 -1
  4. data/lib/validatious-on-rails/validatious/remote_validator.rb +4 -6
  5. data/lib/validatious-on-rails/validatious/validator.rb +48 -55
  6. data/lib/validatious-on-rails/validatious/validators/acceptance_accept_validator.rb +24 -0
  7. data/lib/validatious-on-rails/validatious/validators/confirmation_of_validator.rb +22 -0
  8. data/lib/validatious-on-rails/validatious/validators/exclusion_in_validator.rb +30 -0
  9. data/lib/validatious-on-rails/validatious/validators/format_with_validator.rb +27 -0
  10. data/lib/validatious-on-rails/validatious/validators/inclusion_in_validator.rb +30 -0
  11. data/lib/validatious-on-rails/validatious/validators/length/is_validator.rb +7 -10
  12. data/lib/validatious-on-rails/validatious/validators/length/maximum_validator.rb +6 -9
  13. data/lib/validatious-on-rails/validatious/validators/length/minimum_validator.rb +6 -9
  14. data/lib/validatious-on-rails/validatious/validators/numericality/equal_to_validator.rb +5 -7
  15. data/lib/validatious-on-rails/validatious/validators/numericality/even_validator.rb +5 -6
  16. data/lib/validatious-on-rails/validatious/validators/numericality/greater_than_or_equal_to_validator.rb +5 -7
  17. data/lib/validatious-on-rails/validatious/validators/numericality/greater_than_validator.rb +5 -7
  18. data/lib/validatious-on-rails/validatious/validators/numericality/less_than_or_equal_to_validator.rb +5 -7
  19. data/lib/validatious-on-rails/validatious/validators/numericality/less_than_validator.rb +5 -7
  20. data/lib/validatious-on-rails/validatious/validators/numericality/odd_validator.rb +5 -6
  21. data/lib/validatious-on-rails/validatious/validators/numericality/only_integer_validator.rb +6 -7
  22. data/lib/validatious-on-rails/validatious/validators/presence_validator.rb +4 -7
  23. data/lib/validatious-on-rails/validatious/validators/uniqueness_validator.rb +3 -10
  24. data/test/validatious_on_rails/controller_test.rb +1 -1
  25. data/test/validatious_on_rails/model_validations_test.rb +19 -19
  26. data/test/validatious_on_rails/rails/action_view_helpers_test.rb +11 -9
  27. data/test/validatious_on_rails/validatious/validator_test.rb +11 -11
  28. metadata +12 -12
  29. data/lib/validatious-on-rails/validatious/validators/acceptance_validator.rb +0 -28
  30. data/lib/validatious-on-rails/validatious/validators/confirmation_validator.rb +0 -23
  31. data/lib/validatious-on-rails/validatious/validators/exclusion_validator.rb +0 -28
  32. data/lib/validatious-on-rails/validatious/validators/format_validator.rb +0 -33
  33. data/lib/validatious-on-rails/validatious/validators/inclusion_validator.rb +0 -28
@@ -65,13 +65,13 @@ class FormHelperTest < ::ActionView::TestCase
65
65
 
66
66
  test ":check_box" do # a.k.a. "acceptance required"
67
67
  # Using +helper+
68
- assert_has_class 'acceptance-accept_true', check_box(:bogus_item, :signed, {}, '1', '0')
69
- assert_has_class 'acceptance-accept_true some_other_class', check_box(:bogus_item, :signed, :class => 'some_other_class')
68
+ assert_has_class 'acceptance-accept_true_false', check_box(:bogus_item, :signed, {}, '1', '0')
69
+ assert_has_class 'acceptance-accept_true_false some_other_class', check_box(:bogus_item, :signed, :class => 'some_other_class')
70
70
  # Using builder
71
- assert_has_class 'acceptance-accept_true', form_for(@bogus_item, :url => '/bogus_items') { |f|
71
+ assert_has_class 'acceptance-accept_true_false', form_for(@bogus_item, :url => '/bogus_items') { |f|
72
72
  concat f.check_box(:signed, {})
73
73
  }
74
- assert_has_class 'acceptance-accept_true some_other_class', form_for(@bogus_item, :url => '/bogus_items') { |f|
74
+ assert_has_class 'acceptance-accept_true_false some_other_class', form_for(@bogus_item, :url => '/bogus_items') { |f|
75
75
  concat f.check_box(:signed, :class => 'some_other_class')
76
76
  }
77
77
  end
@@ -214,17 +214,19 @@ class FormHelperTest < ::ActionView::TestCase
214
214
  end
215
215
 
216
216
  test "format_of" do
217
+ url_param_id = ValidatiousOnRails::Validatious::Validator.generate_id(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.inspect)
218
+ validator_class = "format-with_#{url_param_id}_false_false"
217
219
  # Using helper
218
- assert_has_class 'url', text_field(:bogus_item, :url, {})
219
- assert_has_class 'url some_other_class', text_field(:bogus_item, :url, :class => 'some_other_class')
220
+ assert_has_class "#{validator_class}", text_field(:bogus_item, :url, {})
221
+ assert_has_class "#{validator_class} some_other_class", text_field(:bogus_item, :url, :class => 'some_other_class')
220
222
  # Using builder
221
- assert_has_class 'url', form_for(@bogus_item, :url => '/bogus_items') { |f|
223
+ assert_has_class "#{validator_class}", form_for(@bogus_item, :url => '/bogus_items') { |f|
222
224
  concat f.text_field(:url, {})
223
225
  }
224
- assert_has_class 'url some_other_class', form_for(@bogus_item, :url => '/bogus_items') { |f|
226
+ assert_has_class "#{validator_class} some_other_class", form_for(@bogus_item, :url => '/bogus_items') { |f|
225
227
  concat f.text_field(:url, :class => 'some_other_class')
226
228
  }
227
- assert_match /v2.Validator\.add\(\{.*\"url\"/m, @content_for_validatious
229
+ assert_match /v2.Validator\.add\(\{.*\"format-with\"/m, @content_for_validatious
228
230
  end
229
231
 
230
232
  # TODO: The other validators...
@@ -6,8 +6,8 @@ require 'active_support/test_case'
6
6
  class ValidatorTest < ::ActiveSupport::TestCase
7
7
 
8
8
  def setup
9
- @empty_validator = ValidatiousOnRails::Validatious::ClientSideValidator.new('dummie')
10
- @custom_validator = returning ValidatiousOnRails::Validatious::ClientSideValidator.new('dummie') do |v|
9
+ @empty_validator = ValidatiousOnRails::Validatious::ClientSideValidator.new
10
+ @custom_validator = returning ValidatiousOnRails::Validatious::ClientSideValidator.new do |v|
11
11
  v.message = 'Fail, fail, fail!'
12
12
  v.params = ['some', 'params']
13
13
  v.aliases = ['some', 'aliases']
@@ -17,26 +17,26 @@ class ValidatorTest < ::ActiveSupport::TestCase
17
17
  end
18
18
 
19
19
  test "creating an empty validator - and generate valid v2.Validator and class call" do
20
- assert_equal 'dummie', @empty_validator.name
20
+ assert_equal 'client-side', @empty_validator.name
21
21
  assert_equal '', @empty_validator.message
22
22
  assert_equal ([]), @empty_validator.params
23
23
  assert_equal ([]), @empty_validator.aliases
24
- assert_equal true, @empty_validator.accept_empty
24
+ assert_equal false, @empty_validator.accept_empty
25
25
  assert_equal "function(field, value, params){return true;}", @empty_validator.fn
26
26
 
27
27
  expected_v2_validator = 'v2.Validator.add({
28
- acceptEmpty: true,
28
+ acceptEmpty: false,
29
29
  fn: function(field, value, params){return true;},
30
- name: "dummie"
30
+ name: "client-side"
31
31
  });'
32
32
 
33
33
  assert_equal @custom_validator.name, @custom_validator.to_class
34
34
  assert_equal "#{@custom_validator.name}_1_hello_2", @custom_validator.to_class(1, "hello", 2)
35
- assert_equal ::ValidatiousOnRails::Validatious::Validator.truncate_whitespace(expected_v2_validator), @empty_validator.to_js
35
+ assert_equal ::ValidatiousOnRails::Validatious::Validator.truncate_whitespace(expected_v2_validator), @empty_validator.to_js.strip
36
36
  end
37
37
 
38
38
  test "creating a custom validator - and generate valid v2.Validator and class call" do
39
- assert_equal 'dummie', @custom_validator.name
39
+ assert_equal 'client-side', @custom_validator.name
40
40
  assert_equal 'Fail, fail, fail!', @custom_validator.message
41
41
  assert_equal (["some", "params"]), @custom_validator.params
42
42
  assert_equal (["some", "aliases"]), @custom_validator.aliases
@@ -48,13 +48,13 @@ class ValidatorTest < ::ActiveSupport::TestCase
48
48
  aliases: ["some","aliases"],
49
49
  fn: function(field, value, params){return false;},
50
50
  message: "Fail, fail, fail!",
51
- name: "dummie",
51
+ name: "client-side",
52
52
  params: ["some","params"]
53
53
  });'
54
54
 
55
55
  assert_equal @custom_validator.name, @custom_validator.to_class
56
56
  assert_equal "#{@custom_validator.name}_1_hello_2", @custom_validator.to_class(1, "hello", 2)
57
- assert_equal ::ValidatiousOnRails::Validatious::Validator.truncate_whitespace(expected_v2_validator), @custom_validator.to_js
57
+ assert_equal ::ValidatiousOnRails::Validatious::Validator.truncate_whitespace(expected_v2_validator), @custom_validator.to_js.strip
58
58
  end
59
59
 
60
60
  context "Message" do
@@ -84,7 +84,7 @@ class ValidatorTest < ::ActiveSupport::TestCase
84
84
  return true;
85
85
  }
86
86
  compact_fn = %{function(field, value, params){var duck_says = "Quack!";if (duck_says != "Quack!") {return (duck_says == "Quack! ${{interpolation}} Quack!");}return true;}}
87
- assert_equal(compact_fn, duck_validator.fn)
87
+ assert_equal(compact_fn, duck_validator.fn.strip)
88
88
  end
89
89
  end
90
90
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validatious-on-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Grimfelt
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-10-26 00:00:00 +01:00
13
+ date: 2009-10-29 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -41,11 +41,11 @@ extra_rdoc_files:
41
41
  - lib/validatious-on-rails/validatious/remote_validator.rb
42
42
  - lib/validatious-on-rails/validatious/validator.rb
43
43
  - lib/validatious-on-rails/validatious/validators.rb
44
- - lib/validatious-on-rails/validatious/validators/acceptance_validator.rb
45
- - lib/validatious-on-rails/validatious/validators/confirmation_validator.rb
46
- - lib/validatious-on-rails/validatious/validators/exclusion_validator.rb
47
- - lib/validatious-on-rails/validatious/validators/format_validator.rb
48
- - lib/validatious-on-rails/validatious/validators/inclusion_validator.rb
44
+ - lib/validatious-on-rails/validatious/validators/acceptance_accept_validator.rb
45
+ - lib/validatious-on-rails/validatious/validators/confirmation_of_validator.rb
46
+ - lib/validatious-on-rails/validatious/validators/exclusion_in_validator.rb
47
+ - lib/validatious-on-rails/validatious/validators/format_with_validator.rb
48
+ - lib/validatious-on-rails/validatious/validators/inclusion_in_validator.rb
49
49
  - lib/validatious-on-rails/validatious/validators/length/is_validator.rb
50
50
  - lib/validatious-on-rails/validatious/validators/length/maximum_validator.rb
51
51
  - lib/validatious-on-rails/validatious/validators/length/minimum_validator.rb
@@ -88,11 +88,11 @@ files:
88
88
  - lib/validatious-on-rails/validatious/remote_validator.rb
89
89
  - lib/validatious-on-rails/validatious/validator.rb
90
90
  - lib/validatious-on-rails/validatious/validators.rb
91
- - lib/validatious-on-rails/validatious/validators/acceptance_validator.rb
92
- - lib/validatious-on-rails/validatious/validators/confirmation_validator.rb
93
- - lib/validatious-on-rails/validatious/validators/exclusion_validator.rb
94
- - lib/validatious-on-rails/validatious/validators/format_validator.rb
95
- - lib/validatious-on-rails/validatious/validators/inclusion_validator.rb
91
+ - lib/validatious-on-rails/validatious/validators/acceptance_accept_validator.rb
92
+ - lib/validatious-on-rails/validatious/validators/confirmation_of_validator.rb
93
+ - lib/validatious-on-rails/validatious/validators/exclusion_in_validator.rb
94
+ - lib/validatious-on-rails/validatious/validators/format_with_validator.rb
95
+ - lib/validatious-on-rails/validatious/validators/inclusion_in_validator.rb
96
96
  - lib/validatious-on-rails/validatious/validators/length/is_validator.rb
97
97
  - lib/validatious-on-rails/validatious/validators/length/maximum_validator.rb
98
98
  - lib/validatious-on-rails/validatious/validators/length/minimum_validator.rb
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. validator]))
3
-
4
- module ValidatiousOnRails
5
- module Validatious
6
- class AcceptanceValidator < ClientSideValidator
7
-
8
- def initialize(validation, options = {})
9
- name = 'acceptance-accept'
10
- super name, options
11
- self.message = self.class.generate_message(validation, :key => :accepted)
12
- self.accept_empty = validation.options[:allow_nil]
13
- self.fn = %{
14
- var accept_value = params[0] + '';
15
- if (accept_value == 'true') {
16
- accept_value = true
17
- };
18
- if (accept_value == 'false') {
19
- accept_value = false
20
- };
21
- return value == accept_value;
22
- }
23
- self.fn.freeze
24
- end
25
-
26
- end
27
- end
28
- end
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. validator]))
3
-
4
- module ValidatiousOnRails
5
- module Validatious
6
- class ConfirmationValidator < ClientSideValidator
7
-
8
- def initialize(validation, options = {})
9
- name = 'confirmation-of'
10
- super name, options
11
- self.params = ['field-id']
12
- self.message = self.class.generate_message(validation)
13
- self.accept_empty = true
14
- # Identical to Validatious "confirmation-of" validator, but we want Rails I18n message support, so...
15
- self.fn = %{
16
- return value === v2.$f(params[0]).getValue();
17
- }
18
- self.fn.freeze
19
- end
20
-
21
- end
22
- end
23
- end
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. validator]))
3
-
4
- # TODO: See notes in FormatValidator.
5
- #
6
- module ValidatiousOnRails
7
- module Validatious
8
- class ExclusionValidator < ClientSideValidator
9
-
10
- def initialize(validation, options = {})
11
- name, alias_name = self.class.generate_name(validation, :in, self.class.generate_id(validation.options[:in].inspect))
12
- super name, options
13
- self.message = self.class.generate_message(validation)
14
- self.accept_empty = validation.options[:allow_nil]
15
- self.fn = %{
16
- #{self.class.validate_blank(validation.options[:allow_blank])}
17
- var exclusion_values = #{validation.options[:in].to_json};
18
- for (var i = 0; i < exclusion_values.length; i++) {
19
- if (exclusion_values[i] == value) { return false; }
20
- };
21
- return true;
22
- }
23
- self.fn.freeze
24
- end
25
-
26
- end
27
- end
28
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. validator]))
3
-
4
- # TODO: Would be "cool" if each format rule was save as a JS var,
5
- # and referenced with class Validatious style:
6
- #
7
- # <head>:
8
- # var ssn-se = /^\d{6}-{4}$/;
9
- # <<< format validator here >>>
10
- # <body>:
11
- # <input type="text" class="format-with_ssn-se" ... />
12
- #
13
- # Same for inclusion/exclusion too. Easy to implement, but low prio.
14
- #
15
- module ValidatiousOnRails
16
- module Validatious
17
- class FormatValidator < ClientSideValidator
18
-
19
- def initialize(validation, options = {})
20
- name, alias_name = self.class.generate_name(validation, :with, self.class.generate_id(validation.options[:with].inspect))
21
- super name, options
22
- self.message = self.class.generate_message(validation, :key => :invalid)
23
- self.accept_empty = validation.options[:allow_nil]
24
- self.fn = %{
25
- #{self.class.validate_blank(validation.options[:allow_blank])}
26
- return #{validation.options[:with].inspect.gsub(/\\A/, '^').gsub(/\\z/, '$')}.test(value);
27
- }
28
- self.fn.freeze
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. validator]))
3
-
4
- # TODO: See notes in FormatValidator.
5
- #
6
- module ValidatiousOnRails
7
- module Validatious
8
- class InclusionValidator < ClientSideValidator
9
-
10
- def initialize(validation, options = {})
11
- name, alias_name = self.class.generate_name(validation, :in, self.class.generate_id(validation.options[:in].inspect))
12
- super name, options
13
- self.message = self.class.generate_message(validation)
14
- self.accept_empty = validation.options[:allow_nil]
15
- self.fn = %{
16
- #{self.class.validate_blank(validation.options[:allow_blank])}
17
- var inclusion_values = #{validation.options[:in].to_json};
18
- for (var i = 0; i < inclusion_values.length; i++) {
19
- if (inclusion_values[i] == value) { return true; }
20
- };
21
- return false;
22
- }
23
- self.fn.freeze
24
- end
25
-
26
- end
27
- end
28
- end