validatious-on-rails 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/validatious-on-rails/validatious/validator.rb +4 -3
- data/lib/validatious-on-rails/validatious/validators/length/is_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/length/maximum_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/length/minimum_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/numericality/equal_to_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/numericality/greater_than_or_equal_to_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/numericality/greater_than_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/numericality/less_than_or_equal_to_validator.rb +1 -1
- data/lib/validatious-on-rails/validatious/validators/numericality/less_than_validator.rb +1 -1
- data/test/test_helper.rb +6 -5
- data/test/validatious_on_rails/validatious/validator_test.rb +13 -0
- metadata +1 -1
@@ -189,9 +189,10 @@ module ValidatiousOnRails
|
|
189
189
|
# Generate proper error message using explicit message, or I18n-lookup.
|
190
190
|
# Core validations gets treated by Rails - unless explicit message is set that is.
|
191
191
|
#
|
192
|
-
def generate_message(
|
192
|
+
def generate_message(*args)
|
193
193
|
options = args.extract_options!
|
194
|
-
|
194
|
+
validation = args.shift if args.first.is_a?(::ActiveRecord::Reflection::MacroReflection)
|
195
|
+
explicit_message = validation.options[:message] if validation
|
195
196
|
key = options.delete(:key) || (explicit_message if explicit_message.is_a?(::Symbol))
|
196
197
|
|
197
198
|
message = if key.present?
|
@@ -199,7 +200,7 @@ module ValidatiousOnRails
|
|
199
200
|
:default => "activerecord.errors.messages.#{key}"))
|
200
201
|
elsif explicit_message.is_a?(::String)
|
201
202
|
explicit_message
|
202
|
-
|
203
|
+
elsif validation.present?
|
203
204
|
unless ::ValidatiousOnRails::ModelValidations::CORE_VALIDATIONS.include?(validation.macro.to_sym)
|
204
205
|
# No core validation, try to make up a descent I18n lookup path using conventions.
|
205
206
|
key ||= validation.macro.to_s.tr('-', '_').gsub(/^validates?_/, '').gsub(/_of/, '').to_sym
|
@@ -11,7 +11,7 @@ module ValidatiousOnRails
|
|
11
11
|
name = 'length-is'
|
12
12
|
super name, options
|
13
13
|
self.params = ['count']
|
14
|
-
self.message = self.class.generate_message(validation, :key => :wrong_length)
|
14
|
+
self.message = self.class.generate_message(validation, :key => :wrong_length, :count => '{{count}}')
|
15
15
|
self.accept_empty = validation.options[:allow_nil]
|
16
16
|
self.fn = %{
|
17
17
|
#{self.class.validate_blank(validation)}
|
@@ -11,7 +11,7 @@ module ValidatiousOnRails
|
|
11
11
|
name = 'length-maximum'
|
12
12
|
super name, options
|
13
13
|
self.params = ['count']
|
14
|
-
self.message = self.class.generate_message(validation, :key => :too_long)
|
14
|
+
self.message = self.class.generate_message(validation, :key => :too_long, :count => '{{count}}')
|
15
15
|
self.accept_empty = validation.options[:allow_nil]
|
16
16
|
self.fn = %{
|
17
17
|
#{self.class.validate_blank(validation)}
|
@@ -11,7 +11,7 @@ module ValidatiousOnRails
|
|
11
11
|
name = 'length-minimum'
|
12
12
|
super name, options
|
13
13
|
self.params = ['count']
|
14
|
-
self.message = self.class.generate_message(validation, :key => :too_short)
|
14
|
+
self.message = self.class.generate_message(validation, :key => :too_short, :count => '{{count}}')
|
15
15
|
self.accept_empty = validation.options[:allow_nil]
|
16
16
|
self.fn = %{
|
17
17
|
#{self.class.validate_blank(validation)}
|
@@ -10,7 +10,7 @@ module ValidatiousOnRails
|
|
10
10
|
name = 'numericality-equal-to'
|
11
11
|
super name, options
|
12
12
|
self.params = ['count']
|
13
|
-
self.message = self.class.generate_message(validation, :key => :equal_to)
|
13
|
+
self.message = self.class.generate_message(validation, :key => :equal_to, :count => '{{count}}')
|
14
14
|
self.accept_empty = validation.options[:allow_nil]
|
15
15
|
self.fn = %{
|
16
16
|
value = +value;
|
@@ -10,7 +10,7 @@ module ValidatiousOnRails
|
|
10
10
|
name = 'numericality-greater-than-or-equal-to'
|
11
11
|
super name, options
|
12
12
|
self.params = ['count']
|
13
|
-
self.message = self.class.generate_message(validation, :key => :greater_than_or_equal_to)
|
13
|
+
self.message = self.class.generate_message(validation, :key => :greater_than_or_equal_to, :count => '{{count}}')
|
14
14
|
self.accept_empty = validation.options[:allow_nil]
|
15
15
|
self.fn = %{
|
16
16
|
value = +value;
|
@@ -10,7 +10,7 @@ module ValidatiousOnRails
|
|
10
10
|
name = 'numericality-greater-than'
|
11
11
|
super name, options
|
12
12
|
self.params = ['count']
|
13
|
-
self.message = self.class.generate_message(validation, :key => :greater_than)
|
13
|
+
self.message = self.class.generate_message(validation, :key => :greater_than, :count => '{{count}}')
|
14
14
|
self.accept_empty = validation.options[:allow_nil]
|
15
15
|
self.fn = %{
|
16
16
|
value = +value;
|
data/lib/validatious-on-rails/validatious/validators/numericality/less_than_or_equal_to_validator.rb
CHANGED
@@ -10,7 +10,7 @@ module ValidatiousOnRails
|
|
10
10
|
name = 'numericality-less-than-or-equal-to'
|
11
11
|
super name, options
|
12
12
|
self.params = ['count']
|
13
|
-
self.message = self.class.generate_message(validation, :key => :less_than_or_equal_to)
|
13
|
+
self.message = self.class.generate_message(validation, :key => :less_than_or_equal_to, :count => '{{count}}')
|
14
14
|
self.accept_empty = validation.options[:allow_nil]
|
15
15
|
self.fn = %{
|
16
16
|
value = +value;
|
@@ -10,7 +10,7 @@ module ValidatiousOnRails
|
|
10
10
|
name = 'numericality-less-than'
|
11
11
|
super name, options
|
12
12
|
self.params = ['count']
|
13
|
-
self.message = self.class.generate_message(validation, :key => :less_than)
|
13
|
+
self.message = self.class.generate_message(validation, :key => :less_than, :count => '{{count}}')
|
14
14
|
self.accept_empty = validation.options[:allow_nil]
|
15
15
|
self.fn = %{
|
16
16
|
value = +value;
|
data/test/test_helper.rb
CHANGED
@@ -57,15 +57,15 @@ build_model :bogus_items do
|
|
57
57
|
string :email
|
58
58
|
string :file_path
|
59
59
|
string :dummie
|
60
|
-
|
60
|
+
|
61
61
|
text :body
|
62
62
|
integer :variant
|
63
63
|
boolean :signed
|
64
|
-
|
64
|
+
|
65
65
|
string :field_with_defaults
|
66
66
|
string :field_with_client_side_validations
|
67
67
|
string :field_without_client_side_validations
|
68
|
-
|
68
|
+
|
69
69
|
validates_presence_of :name, :body, :variant, :file_path, :dummie
|
70
70
|
validates_uniqueness_of :name
|
71
71
|
validates_confirmation_of :name
|
@@ -75,11 +75,12 @@ build_model :bogus_items do
|
|
75
75
|
:name => 'url', :message => 'Invalid URL.'
|
76
76
|
validates_inclusion_of :variant, :in => (1..5).to_a
|
77
77
|
validates_exclusion_of :variant, :in => (6..10).to_a
|
78
|
-
|
78
|
+
validates_length_of :url, :minimum => 10
|
79
|
+
|
79
80
|
validates_presence_of :field_with_defaults
|
80
81
|
validates_presence_of :field_with_client_side_validations, :client_side => true
|
81
82
|
validates_presence_of :field_without_client_side_validations, :client_side => false
|
82
|
-
|
83
|
+
|
83
84
|
# TODO: Test: If this is a validator makro, then it should not cause any issues.
|
84
85
|
validates_craziness_of :name
|
85
86
|
end
|
@@ -57,4 +57,17 @@ class ValidatorTest < ::ActiveSupport::TestCase
|
|
57
57
|
assert_equal expected_v2_validator.gsub(/[\n\s\t]/, ''), @custom_validator.to_js.gsub(/[\n\s\t]/, '')
|
58
58
|
end
|
59
59
|
|
60
|
+
context "Message" do
|
61
|
+
test "I18n lookup" do
|
62
|
+
validator_klass = ValidatiousOnRails::Validatious::Validator
|
63
|
+
# For some reason can't raise this in tests. =S
|
64
|
+
# assert_raise(::I18n::MissingInterpolationArgument) {
|
65
|
+
# validator_klass.generate_message :key => :too_short
|
66
|
+
# }
|
67
|
+
assert_nothing_raised(::I18n::MissingInterpolationArgument) {
|
68
|
+
validator_klass.generate_message :key => :too_short, :count => '{{count}}'
|
69
|
+
}
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
60
73
|
end
|