lib/matchers/validations/inclusion_of.rb in mongoid-rspec-1.5.1 vs lib/matchers/validations/inclusion_of.rb in mongoid-rspec-1.5.3
- old
+ new
@@ -11,12 +11,19 @@
self
end
def matches?(actual)
return false unless result = super(actual)
-
+
if @allowed_values
- not_allowed_values = @allowed_values - @validator.options[:in].to_a
+ raw_validator_allowed_values = @validator.options[:in]
+
+ validator_allowed_values = case raw_validator_allowed_values
+ when Range then raw_validator_allowed_values.to_a
+ when Proc then raw_validator_allowed_values.call(actual)
+ else raw_validator_allowed_values end
+
+ not_allowed_values = @allowed_values - validator_allowed_values
if not_allowed_values.empty?
@positive_result_message = @positive_result_message << " allowing all values mentioned"
else
@negative_result_message = @negative_result_message << " not allowing the following the ff. values: #{not_allowed_values.inspect}"
result = false
\ No newline at end of file