tod 2.0.2 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -4
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +15 -11
- data/lib/tod/arel_extensions.rb +25 -0
- data/lib/tod/date_extensions.rb +2 -0
- data/lib/tod/shift.rb +29 -1
- data/lib/tod/time_of_day.rb +6 -2
- data/lib/tod/version.rb +1 -1
- data/test/test_helper.rb +1 -0
- data/test/tod/shift_test.rb +186 -0
- data/test/tod/time_of_day_serializable_attribute_test.rb +9 -0
- data/test/tod/time_of_day_test.rb +19 -0
- data/tod.gemspec +1 -0
- metadata +28 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07c87817736be833dd3bc8ce83a55f075cdf79d9
|
4
|
+
data.tar.gz: 6eec299d0c6fe1b0c4c9385d555d9bf60e794ae1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac687afb2c4bf51aeb96143f955d68abcf5c1e4e9d82cd1fbd782131f4fbfa30c1992927f19715ef348fa05c8bb0732dc58a4cae24ea84dd41bc17f5bafbc06c
|
7
|
+
data.tar.gz: f1c51e6615f4b1961f5ce874a878a66cd258d30ff3069bd8b3fe3b265412e36273b333286c4ea7ed0ce3046255cbba64e307f4e113e72f06dde63419cdd9934b
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 2.1.0 (May 9, 2016)
|
2
|
+
|
3
|
+
* Fix date extensions requiring date (ambirdsall)
|
4
|
+
* Add subtraction to TimeOfDay (Hiroki Shirai)
|
5
|
+
* Add equality comparison for shifts (Greg Beech)
|
6
|
+
* Add arel_extensions for TimeOfDay (Paul Tyng)
|
7
|
+
* Support for shifts that span to other days (kennyeni)
|
8
|
+
|
9
|
+
# 2.0.2 (May 21, 2015)
|
10
|
+
|
11
|
+
* Fix ActiveRecord serialization when core extensions not loaded
|
12
|
+
|
1
13
|
# 2.0.1 (May 8, 2015)
|
2
14
|
|
3
15
|
* Fix Tod::TimeOfDay() without core extensions
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tod (2.0
|
4
|
+
tod (2.1.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
activemodel (4.2.
|
10
|
-
activesupport (= 4.2.
|
9
|
+
activemodel (4.2.3)
|
10
|
+
activesupport (= 4.2.3)
|
11
11
|
builder (~> 3.1)
|
12
|
-
activerecord (4.2.
|
13
|
-
activemodel (= 4.2.
|
14
|
-
activesupport (= 4.2.
|
12
|
+
activerecord (4.2.3)
|
13
|
+
activemodel (= 4.2.3)
|
14
|
+
activesupport (= 4.2.3)
|
15
15
|
arel (~> 6.0)
|
16
|
-
activesupport (4.2.
|
16
|
+
activesupport (4.2.3)
|
17
17
|
i18n (~> 0.7)
|
18
18
|
json (~> 1.7, >= 1.7.7)
|
19
19
|
minitest (~> 5.1)
|
20
20
|
thread_safe (~> 0.3, >= 0.3.4)
|
21
21
|
tzinfo (~> 1.1)
|
22
|
-
arel (6.0.
|
22
|
+
arel (6.0.2)
|
23
23
|
builder (3.2.2)
|
24
24
|
coderay (1.1.0)
|
25
25
|
i18n (0.7.0)
|
26
|
-
json (1.8.
|
26
|
+
json (1.8.3)
|
27
27
|
method_source (0.8.2)
|
28
|
-
minitest (5.
|
28
|
+
minitest (5.7.0)
|
29
29
|
pry (0.10.1)
|
30
30
|
coderay (~> 1.1.0)
|
31
31
|
method_source (~> 0.8.1)
|
@@ -33,7 +33,7 @@ GEM
|
|
33
33
|
rake (10.4.2)
|
34
34
|
slop (3.6.0)
|
35
35
|
sqlite3 (1.3.10)
|
36
|
-
thread_safe (0.3.
|
36
|
+
thread_safe (0.3.5)
|
37
37
|
tzinfo (1.2.2)
|
38
38
|
thread_safe (~> 0.1)
|
39
39
|
|
@@ -42,9 +42,13 @@ PLATFORMS
|
|
42
42
|
|
43
43
|
DEPENDENCIES
|
44
44
|
activerecord (>= 3.0.0)
|
45
|
+
arel
|
45
46
|
minitest
|
46
47
|
pry
|
47
48
|
rake
|
48
49
|
sqlite3
|
49
50
|
tod!
|
50
51
|
tzinfo
|
52
|
+
|
53
|
+
BUNDLED WITH
|
54
|
+
1.11.2
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'arel'
|
2
|
+
|
3
|
+
module Tod
|
4
|
+
module ArelDepthFirstExtensions
|
5
|
+
def self.included(base)
|
6
|
+
base.send :alias_method, :visit_Tod_TimeOfDay, :terminal
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module ArelDotExtensions
|
11
|
+
def self.included(base)
|
12
|
+
base.send :alias_method, :visit_Tod_TimeOfDay, :visit_String
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module ArelToSqlExtensions
|
17
|
+
def visit_Tod_TimeOfDay(o, collector=nil)
|
18
|
+
quote Tod::TimeOfDay.dump(o)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Arel::Visitors::DepthFirst.send :include, Tod::ArelDepthFirstExtensions
|
24
|
+
Arel::Visitors::Dot.send :include, Tod::ArelDotExtensions
|
25
|
+
Arel::Visitors::ToSql.send :include, Tod::ArelToSqlExtensions
|
data/lib/tod/date_extensions.rb
CHANGED
data/lib/tod/shift.rb
CHANGED
@@ -33,9 +33,20 @@ module Tod
|
|
33
33
|
|
34
34
|
# Returns true if ranges overlap, false otherwise.
|
35
35
|
def overlaps?(other)
|
36
|
+
max_seconds = TimeOfDay::NUM_SECONDS_IN_DAY
|
37
|
+
|
38
|
+
# Standard case, when Shifts are on the same day
|
36
39
|
a, b = [self, other].map(&:range).sort_by(&:first)
|
37
40
|
op = a.exclude_end? ? :> : :>=
|
38
|
-
a.last.send(op, b.first)
|
41
|
+
return true if a.last.send(op, b.first)
|
42
|
+
|
43
|
+
# Special cases, when Shifts span to the next day
|
44
|
+
return false if (a.last < max_seconds) && (b.last < max_seconds)
|
45
|
+
|
46
|
+
a = Range.new(a.first, a.last - max_seconds, a.exclude_end?) if a.last > max_seconds
|
47
|
+
b = Range.new(b.first, b.last - max_seconds, b.exclude_end?) if b.last > max_seconds
|
48
|
+
a, b = [a, b].sort_by(&:last)
|
49
|
+
b.last.send(op, a.last) && a.last.send(op, b.first)
|
39
50
|
end
|
40
51
|
|
41
52
|
def contains?(shift)
|
@@ -51,5 +62,22 @@ module Tod
|
|
51
62
|
def exclude_end?
|
52
63
|
@exclude_end
|
53
64
|
end
|
65
|
+
|
66
|
+
def ==(other)
|
67
|
+
@range == other.range
|
68
|
+
end
|
69
|
+
|
70
|
+
def eql?(other)
|
71
|
+
@range.eql?(other.range)
|
72
|
+
end
|
73
|
+
|
74
|
+
def hash
|
75
|
+
@range.hash
|
76
|
+
end
|
77
|
+
|
78
|
+
# Move start and end by a number of seconds and return new shift.
|
79
|
+
def slide(seconds)
|
80
|
+
self.class.new(beginning + seconds, ending + seconds, exclude_end?)
|
81
|
+
end
|
54
82
|
end
|
55
83
|
end
|
data/lib/tod/time_of_day.rb
CHANGED
@@ -78,8 +78,12 @@ module Tod
|
|
78
78
|
|
79
79
|
# Return a new TimeOfDay num_seconds less than self. It will wrap around
|
80
80
|
# at midnight.
|
81
|
-
def -(
|
82
|
-
TimeOfDay
|
81
|
+
def -(other)
|
82
|
+
if other.instance_of?(TimeOfDay)
|
83
|
+
TimeOfDay.from_second_of_day @second_of_day - other.second_of_day
|
84
|
+
else
|
85
|
+
TimeOfDay.from_second_of_day @second_of_day - other
|
86
|
+
end
|
83
87
|
end
|
84
88
|
|
85
89
|
# Returns a Time instance on date using self as the time of day
|
data/lib/tod/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
data/test/tod/shift_test.rb
CHANGED
@@ -43,12 +43,49 @@ describe "Shift" do
|
|
43
43
|
shift1 = Tod::Shift.new(Tod::TimeOfDay.new(12), Tod::TimeOfDay.new(18))
|
44
44
|
shift2 = Tod::Shift.new(Tod::TimeOfDay.new(13), Tod::TimeOfDay.new(15))
|
45
45
|
assert shift1.overlaps?(shift2)
|
46
|
+
|
47
|
+
# Additional Testing for Shifts that span from one day to another
|
48
|
+
cases = [
|
49
|
+
[5, 8, 7, 2],
|
50
|
+
[7, 2, 1, 8],
|
51
|
+
[7, 2, 5, 8],
|
52
|
+
[4, 8, 1, 5],
|
53
|
+
[1, 5, 4, 8],
|
54
|
+
[7, 2, 1, 4],
|
55
|
+
[1, 4, 7, 2],
|
56
|
+
[1, 4, 3, 2],
|
57
|
+
[5, 8, 7, 2],
|
58
|
+
[7, 2, 8, 3],
|
59
|
+
[7, 2, 6, 3],
|
60
|
+
[7, 2, 1, 8]
|
61
|
+
]
|
62
|
+
|
63
|
+
cases.each do |c|
|
64
|
+
shift1 = Tod::Shift.new(Tod::TimeOfDay.new(c[0]), Tod::TimeOfDay.new(c[1]))
|
65
|
+
shift2 = Tod::Shift.new(Tod::TimeOfDay.new(c[2]), Tod::TimeOfDay.new(c[3]))
|
66
|
+
assert shift1.overlaps?(shift2), "Failed with args: #{c}"
|
67
|
+
end
|
46
68
|
end
|
47
69
|
|
48
70
|
it "is false when shifts don't overlap" do
|
49
71
|
shift1 = Tod::Shift.new(Tod::TimeOfDay.new(1), Tod::TimeOfDay.new(5))
|
50
72
|
shift2 = Tod::Shift.new(Tod::TimeOfDay.new(9), Tod::TimeOfDay.new(12))
|
51
73
|
refute shift1.overlaps?(shift2)
|
74
|
+
|
75
|
+
# Additional Testing for Shifts that span from one day to another
|
76
|
+
cases = [
|
77
|
+
[7, 8, 1, 5],
|
78
|
+
[1, 5, 7, 8],
|
79
|
+
[7, 2, 3, 4],
|
80
|
+
[3, 4, 5, 2],
|
81
|
+
[1, 5, 9, 12]
|
82
|
+
]
|
83
|
+
|
84
|
+
cases.each do |c|
|
85
|
+
shift1 = Tod::Shift.new(Tod::TimeOfDay.new(c[0]), Tod::TimeOfDay.new(c[1]))
|
86
|
+
shift2 = Tod::Shift.new(Tod::TimeOfDay.new(c[2]), Tod::TimeOfDay.new(c[3]))
|
87
|
+
refute shift1.overlaps?(shift2), "Failed with args: #{c}"
|
88
|
+
end
|
52
89
|
end
|
53
90
|
|
54
91
|
it "is true when shifts touch with inclusive end" do
|
@@ -166,4 +203,153 @@ describe "Shift" do
|
|
166
203
|
assert shift.include?(value)
|
167
204
|
end
|
168
205
|
end
|
206
|
+
|
207
|
+
describe "#==" do
|
208
|
+
it "is true when the beginning time, end time, and exclude end are the same" do
|
209
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
210
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
211
|
+
shift1 = Tod::Shift.new tod1, tod2
|
212
|
+
shift2 = Tod::Shift.new tod1, tod2
|
213
|
+
assert shift1 == shift2
|
214
|
+
end
|
215
|
+
|
216
|
+
it "is false when the beginning time is different" do
|
217
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
218
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
219
|
+
shift1 = Tod::Shift.new tod1, tod2
|
220
|
+
shift2 = Tod::Shift.new tod1, Tod::TimeOfDay.new(14,00)
|
221
|
+
assert !(shift1 == shift2)
|
222
|
+
end
|
223
|
+
|
224
|
+
it "is false when the ending time is different" do
|
225
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
226
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
227
|
+
shift1 = Tod::Shift.new tod1, tod2
|
228
|
+
shift2 = Tod::Shift.new Tod::TimeOfDay.new(9,30), tod2
|
229
|
+
assert !(shift1 == shift2)
|
230
|
+
end
|
231
|
+
|
232
|
+
it "is false when exclude end is different" do
|
233
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
234
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
235
|
+
shift1 = Tod::Shift.new tod1, tod2
|
236
|
+
shift2 = Tod::Shift.new tod1, tod2, true
|
237
|
+
assert !(shift1 == shift2)
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
describe "#eql?" do
|
242
|
+
it "is true when the beginning time, end time, and exclude end are the same" do
|
243
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
244
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
245
|
+
shift1 = Tod::Shift.new tod1, tod2
|
246
|
+
shift2 = Tod::Shift.new tod1, tod2
|
247
|
+
assert shift1.eql?(shift2)
|
248
|
+
end
|
249
|
+
|
250
|
+
it "is false when the beginning time is different" do
|
251
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
252
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
253
|
+
shift1 = Tod::Shift.new tod1, tod2
|
254
|
+
shift2 = Tod::Shift.new tod1, Tod::TimeOfDay.new(14,00)
|
255
|
+
assert !shift1.eql?(shift2)
|
256
|
+
end
|
257
|
+
|
258
|
+
it "is false when the ending time is different" do
|
259
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
260
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
261
|
+
shift1 = Tod::Shift.new tod1, tod2
|
262
|
+
shift2 = Tod::Shift.new Tod::TimeOfDay.new(9,30), tod2
|
263
|
+
assert !shift1.eql?(shift2)
|
264
|
+
end
|
265
|
+
|
266
|
+
it "is false when exclude end is different" do
|
267
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
268
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
269
|
+
shift1 = Tod::Shift.new tod1, tod2
|
270
|
+
shift2 = Tod::Shift.new tod1, tod2, true
|
271
|
+
assert !shift1.eql?(shift2)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
describe "#hash" do
|
276
|
+
it "is the same when the beginning time, end time, and exclude end are the same" do
|
277
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
278
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
279
|
+
shift1 = Tod::Shift.new tod1, tod2
|
280
|
+
shift2 = Tod::Shift.new tod1, tod2
|
281
|
+
assert_equal shift1.hash, shift2.hash
|
282
|
+
end
|
283
|
+
|
284
|
+
it "is usually different when the beginning time is different" do
|
285
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
286
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
287
|
+
shift1 = Tod::Shift.new tod1, tod2
|
288
|
+
shift2 = Tod::Shift.new tod1, Tod::TimeOfDay.new(14,00)
|
289
|
+
assert shift1.hash != shift2.hash
|
290
|
+
end
|
291
|
+
|
292
|
+
it "is usually different when the ending time is different" do
|
293
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
294
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
295
|
+
shift1 = Tod::Shift.new tod1, tod2
|
296
|
+
shift2 = Tod::Shift.new Tod::TimeOfDay.new(9,30), tod2
|
297
|
+
assert shift1.hash != shift2.hash
|
298
|
+
end
|
299
|
+
|
300
|
+
it "is usually different when exclude end is different" do
|
301
|
+
tod1 = Tod::TimeOfDay.new 8,30
|
302
|
+
tod2 = Tod::TimeOfDay.new 13,00,30
|
303
|
+
shift1 = Tod::Shift.new tod1, tod2
|
304
|
+
shift2 = Tod::Shift.new tod1, tod2, true
|
305
|
+
assert shift1.hash != shift2.hash
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
describe "slide" do
|
310
|
+
it "handles positive numbers" do
|
311
|
+
slide = 30 * 60 # 30 minutes in seconds
|
312
|
+
|
313
|
+
beginning_expected = Tod::TimeOfDay.new 10, 30
|
314
|
+
ending_expected = Tod::TimeOfDay.new 16, 30
|
315
|
+
|
316
|
+
beginning = Tod::TimeOfDay.new 10
|
317
|
+
ending = Tod::TimeOfDay.new 16
|
318
|
+
shift = Tod::Shift.new(beginning, ending, false).slide(slide)
|
319
|
+
|
320
|
+
assert_equal beginning_expected, shift.beginning
|
321
|
+
assert_equal ending_expected, shift.ending
|
322
|
+
refute shift.exclude_end?
|
323
|
+
end
|
324
|
+
|
325
|
+
it "handles negative numbers" do
|
326
|
+
slide = -30 * 60 # -30 minutes in seconds
|
327
|
+
|
328
|
+
beginning_expected = Tod::TimeOfDay.new 9, 30
|
329
|
+
ending_expected = Tod::TimeOfDay.new 15, 30
|
330
|
+
|
331
|
+
beginning = Tod::TimeOfDay.new 10
|
332
|
+
ending = Tod::TimeOfDay.new 16
|
333
|
+
shift = Tod::Shift.new(beginning, ending, false).slide(slide)
|
334
|
+
|
335
|
+
assert_equal beginning_expected, shift.beginning
|
336
|
+
assert_equal ending_expected, shift.ending
|
337
|
+
refute shift.exclude_end?
|
338
|
+
end
|
339
|
+
|
340
|
+
it "handles ActiveSupport::Duration" do
|
341
|
+
slide = 30.minutes
|
342
|
+
|
343
|
+
beginning_expected = Tod::TimeOfDay.new 10, 30
|
344
|
+
ending_expected = Tod::TimeOfDay.new 16, 30
|
345
|
+
|
346
|
+
beginning = Tod::TimeOfDay.new 10
|
347
|
+
ending = Tod::TimeOfDay.new 16
|
348
|
+
shift = Tod::Shift.new(beginning, ending, false).slide(slide)
|
349
|
+
|
350
|
+
assert_equal beginning_expected, shift.beginning
|
351
|
+
assert_equal ending_expected, shift.ending
|
352
|
+
refute shift.exclude_end?
|
353
|
+
end
|
354
|
+
end
|
169
355
|
end
|
@@ -30,4 +30,13 @@ describe "TimeOfDay with ActiveRecord Serializable Attribute" do
|
|
30
30
|
assert_equal order.time, nil
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
describe "Order.where" do
|
35
|
+
it "handles TimeOfDay as a parameter" do
|
36
|
+
tod = Tod::TimeOfDay.new(11, 11)
|
37
|
+
expected = Order.create!(time: tod)
|
38
|
+
actual = Order.where(time: tod).first
|
39
|
+
assert_equal expected, actual
|
40
|
+
end
|
41
|
+
end
|
33
42
|
end
|
@@ -151,6 +151,12 @@ describe "TimeOfDay" do
|
|
151
151
|
result = original + 15
|
152
152
|
refute_equal original.object_id, result.object_id
|
153
153
|
end
|
154
|
+
|
155
|
+
it "handles ActiveSupport::Duration" do
|
156
|
+
original = Tod::TimeOfDay.new(8,0,0)
|
157
|
+
result = original + 10.minutes
|
158
|
+
assert_equal Tod::TimeOfDay.new(8,10,0), result
|
159
|
+
end
|
154
160
|
end
|
155
161
|
|
156
162
|
describe "subtraction" do
|
@@ -171,6 +177,19 @@ describe "TimeOfDay" do
|
|
171
177
|
result = original - 15
|
172
178
|
refute_equal original.object_id, result.object_id
|
173
179
|
end
|
180
|
+
|
181
|
+
it "handles ActiveSupport::Duration" do
|
182
|
+
original = Tod::TimeOfDay.new(8,0,0)
|
183
|
+
result = original - 10.minutes
|
184
|
+
assert_equal Tod::TimeOfDay.new(7,50,0), result
|
185
|
+
end
|
186
|
+
|
187
|
+
it "subtracts Tod::TimeOfDay object" do
|
188
|
+
right_side = Tod::TimeOfDay.new(10,0,0)
|
189
|
+
left_side = Tod::TimeOfDay.new(12,0,30)
|
190
|
+
result = right_side - left_side
|
191
|
+
assert_equal Tod::TimeOfDay.new(21,59,30), result
|
192
|
+
end
|
174
193
|
end
|
175
194
|
|
176
195
|
describe "from_second_of_day" do
|
data/tod.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_development_dependency "activerecord", ">= 3.0.0"
|
20
20
|
s.add_development_dependency "sqlite3"
|
21
21
|
s.add_development_dependency "pry"
|
22
|
+
s.add_development_dependency "arel"
|
22
23
|
|
23
24
|
s.files = `git ls-files`.split("\n")
|
24
25
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Christensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: arel
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Supplies TimeOfDay and Shift class that includes parsing, strftime, comparison,
|
98
112
|
and arithmetic.
|
99
113
|
email:
|
@@ -115,6 +129,7 @@ files:
|
|
115
129
|
- gemfiles/4.1.gemfile
|
116
130
|
- gemfiles/4.2.gemfile
|
117
131
|
- lib/tod.rb
|
132
|
+
- lib/tod/arel_extensions.rb
|
118
133
|
- lib/tod/conversions.rb
|
119
134
|
- lib/tod/core_extensions.rb
|
120
135
|
- lib/tod/date_extensions.rb
|
@@ -153,8 +168,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
168
|
version: '0'
|
154
169
|
requirements: []
|
155
170
|
rubyforge_project:
|
156
|
-
rubygems_version: 2.
|
171
|
+
rubygems_version: 2.5.1
|
157
172
|
signing_key:
|
158
173
|
specification_version: 4
|
159
174
|
summary: Supplies TimeOfDay and Shift class
|
160
|
-
test_files:
|
175
|
+
test_files:
|
176
|
+
- test/support/active_record.rb
|
177
|
+
- test/test_helper.rb
|
178
|
+
- test/tod/conversion_test.rb
|
179
|
+
- test/tod/date_test.rb
|
180
|
+
- test/tod/shift_test.rb
|
181
|
+
- test/tod/time_of_day_serializable_attribute_test.rb
|
182
|
+
- test/tod/time_of_day_test.rb
|
183
|
+
- test/tod/time_of_day_time_zone_with_active_support_test.rb
|
184
|
+
- test/tod/time_test.rb
|