specstar-models 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/specstar/models.rb +17 -0
- metadata +1 -1
data/lib/specstar/models.rb
CHANGED
@@ -102,6 +102,23 @@ module Specstar
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
106
|
+
RSpec::Matchers.define :validate_numericality_of do |attr, options|
|
107
|
+
match do |model|
|
108
|
+
(has_attribute?(model, attr) || has_association?(model, attr)) &&
|
109
|
+
model._validators[attr].select do |validator|
|
110
|
+
validator.instance_of?(ActiveModel::Validations::NumericalityValidator) && validator.options.merge(options) == validator.options
|
111
|
+
end.size > 0
|
112
|
+
end
|
113
|
+
|
114
|
+
failure_message_for_should do |model|
|
115
|
+
if has_attribute?(model, attr) || has_association?(model, attr)
|
116
|
+
"expected #{model.class} to validate numericality of #{attr} in [#{options.delete(:in).map(&:to_s).join(', ')}]."
|
117
|
+
else
|
118
|
+
"expected #{model.class} to have an attribute or association #{attr}."
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
105
122
|
end
|
106
123
|
end
|
107
124
|
end
|