delayer 1.1.0 → 1.1.1
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/lib/delayer/delayed_procedure.rb +7 -1
- data/lib/delayer/extend.rb +2 -2
- data/lib/delayer/version.rb +1 -1
- data/test/test_delayer.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2b9095d6ff8a3d46813d7ca787b7ffcf13050de5a21de2ba8b63940a9394631
|
4
|
+
data.tar.gz: 1da28faf0ed99c6f87450c85c469b967ca2cdc5dc08e5bcbb629d050f1d5aa66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22cac588a6463302883fbac1ada84b6922cf84076f854c2e75757ea495ac71569b133a0955dc131ca582d08b3b175beca6fb184e778975eda172ff5846747d7b
|
7
|
+
data.tar.gz: fc1cf72aae866f8d832f9f856b44dc7dd2e29e26459715800ba4d30ce8a503e782e89e86e302b0629b73f55049a083eeba60030466290f6fef376bb38f1f78b8
|
@@ -9,9 +9,15 @@ module Delayer
|
|
9
9
|
def initialize(delayer, delay:, &proc)
|
10
10
|
@delayer = delayer
|
11
11
|
@proc = proc
|
12
|
-
|
12
|
+
case delay
|
13
|
+
when Time
|
14
|
+
@reserve_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + delay.to_f - Time.now.to_f
|
15
|
+
else
|
16
|
+
@reserve_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + delay.to_f
|
17
|
+
end
|
13
18
|
@left = @right = @cancel = nil
|
14
19
|
@size = 1
|
20
|
+
@procedure = nil
|
15
21
|
@delayer.class.reserve(self)
|
16
22
|
end
|
17
23
|
|
data/lib/delayer/extend.rb
CHANGED
@@ -26,7 +26,7 @@ module Delayer
|
|
26
26
|
@procedure = Procedure.new(self, &proc)
|
27
27
|
else
|
28
28
|
@procedure = DelayedProcedure.new(self, delay: delay, &proc)
|
29
|
-
|
29
|
+
end
|
30
30
|
end
|
31
31
|
|
32
32
|
# Cancel this job
|
@@ -52,6 +52,7 @@ module Delayer
|
|
52
52
|
@remain_received = false
|
53
53
|
@lock = Mutex.new
|
54
54
|
@bucket = Bucket.new(nil, nil, {}, nil)
|
55
|
+
@reserve = nil
|
55
56
|
end
|
56
57
|
end
|
57
58
|
|
@@ -163,7 +164,6 @@ module Delayer
|
|
163
164
|
# ==== Return
|
164
165
|
# self
|
165
166
|
def reserve(procedure)
|
166
|
-
priority = procedure.delayer.priority
|
167
167
|
lock.synchronize do
|
168
168
|
if @reserve
|
169
169
|
@reserve = @reserve.add(procedure)
|
data/lib/delayer/version.rb
CHANGED
data/test/test_delayer.rb
CHANGED
@@ -373,6 +373,16 @@ class TestDelayer < Test::Unit::TestCase
|
|
373
373
|
assert_equal([1, 2, 0, 3], a)
|
374
374
|
end
|
375
375
|
|
376
|
+
def test_timer_give_time
|
377
|
+
delayer = Delayer.generate_class expire: 0.01
|
378
|
+
a = []
|
379
|
+
delayer.new(delay: Time.new) { a << 0 }
|
380
|
+
|
381
|
+
delayer.run
|
382
|
+
|
383
|
+
assert_equal([0], a)
|
384
|
+
end
|
385
|
+
|
376
386
|
def test_plural_timer
|
377
387
|
delayer = Delayer.generate_class expire: 0.01
|
378
388
|
a = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toshiaki Asai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
100
|
requirements: []
|
101
|
-
rubygems_version: 3.
|
101
|
+
rubygems_version: 3.1.2
|
102
102
|
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: Delay the processing
|