validatious-on-rails 0.4.1 → 0.4.2
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.
- 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
|