tod 2.0.2 → 2.1.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.
- 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
|