DateSetter 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/DateSetter.rb +14 -6
- data/test/date_setter_test.rb +14 -1
- data/version.rb +1 -1
- metadata +1 -1
data/lib/DateSetter.rb
CHANGED
@@ -25,15 +25,23 @@ class DateSetter
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def reference_date
|
28
|
-
@reference_date.
|
28
|
+
@reference_date.is_a?(Date) ? @reference_date.at_beginning_of_day : @reference_date
|
29
29
|
end
|
30
30
|
|
31
31
|
def min_date
|
32
|
-
@min_date.
|
32
|
+
if @min_date.is_a?(Date)
|
33
|
+
@min_date.at_beginning_of_day
|
34
|
+
else
|
35
|
+
@min_date || min_date_range - 1.second
|
36
|
+
end
|
33
37
|
end
|
34
38
|
|
35
39
|
def max_date
|
36
|
-
@max_date.
|
40
|
+
if @max_date.is_a?(Date)
|
41
|
+
@max_date.at_beginning_of_day
|
42
|
+
else
|
43
|
+
@max_date || max_date_range + 1.second
|
44
|
+
end
|
37
45
|
end
|
38
46
|
|
39
47
|
def result
|
@@ -116,7 +124,7 @@ class DateSetter
|
|
116
124
|
end
|
117
125
|
|
118
126
|
def min_date_time_hour
|
119
|
-
valid_min_date_time_in_range.
|
127
|
+
(valid_min_date_time_in_range.to_i - valid_min_date_time_in_range.at_beginning_of_day.to_i).seconds
|
120
128
|
end
|
121
129
|
|
122
130
|
def min_date_in_range
|
@@ -140,8 +148,8 @@ class DateSetter
|
|
140
148
|
end
|
141
149
|
|
142
150
|
def max_date_time_hour
|
143
|
-
if valid_max_date_time_in_range.
|
144
|
-
valid_max_date_time_in_range.
|
151
|
+
if valid_max_date_time_in_range.to_i - valid_max_date_time_in_range.at_beginning_of_day.to_i > 0
|
152
|
+
(valid_max_date_time_in_range.to_i - valid_max_date_time_in_range.at_beginning_of_day.to_i).seconds
|
145
153
|
else
|
146
154
|
24.hours - 1.second
|
147
155
|
end
|
data/test/date_setter_test.rb
CHANGED
@@ -198,6 +198,19 @@ class DateSetterTest < MiniTest::Unit::TestCase
|
|
198
198
|
@date_setter.start_of_day = 8.hours
|
199
199
|
@date_setter.end_of_day = 20.hours
|
200
200
|
|
201
|
-
@date_setter.valid?
|
201
|
+
assert @date_setter.valid?
|
202
|
+
end
|
203
|
+
|
204
|
+
def test_3_seconds_precision
|
205
|
+
@date_setter.reference_date = Date.today
|
206
|
+
@date_setter.range = 500.days
|
207
|
+
@date_setter.min_date = Date.today - 1.second
|
208
|
+
@date_setter.max_date = Date.today + 1.second
|
209
|
+
|
210
|
+
assert (@date_setter.min_date..@date_setter.max_date).cover?(@date_setter.result)
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_3_seconds_precision_with_set_method
|
214
|
+
assert (Date.today - 1.second..Date.today + 1.second).cover?(DateSetter.set(Date.today, 500.days, min_date: Date.today - 1.second, max_date: Date.today + 1.second))
|
202
215
|
end
|
203
216
|
end
|
data/version.rb
CHANGED