DateSetter 1.3.2 → 1.4.0

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/DateSetter.rb CHANGED
@@ -25,15 +25,23 @@ class DateSetter
25
25
  end
26
26
 
27
27
  def reference_date
28
- @reference_date.try(:to_datetime)
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.try(:to_datetime) || min_date_range - 1.second
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.try(:to_datetime) || max_date_range + 1.second
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.hour.hours + valid_min_date_time_in_range.min.minutes + valid_min_date_time_in_range.sec.seconds
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.hour > 0
144
- valid_max_date_time_in_range.hour.hours + valid_max_date_time_in_range.min.minutes + valid_max_date_time_in_range.sec.seconds
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  class DateSetter
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DateSetter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: