validatious-on-rails 0.4.5 → 0.4.6

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.
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