Range with excluded end passed to :between option should be split into :on_or_after and :before options

This commit is contained in:
Alexey Chernenkov
2013-04-23 15:36:47 +06:00
parent df9677f5bf
commit dc0fdc0340
3 changed files with 26 additions and 5 deletions

View File

@@ -32,7 +32,12 @@ module ValidatesTimeliness
if range = options.delete(:between)
raise ArgumentError, ":between must be a Range or an Array" unless range.is_a?(Range) || range.is_a?(Array)
options[:on_or_after], options[:on_or_before] = range.first, range.last
options[:on_or_after] = range.first
if range.is_a?(Range) && range.exclude_end?
options[:before] = range.last
else
options[:on_or_before] = range.last
end
end
@restrictions_to_check = RESTRICTIONS.keys & options.keys