driq 0.3.0 → 0.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/driq.rb +9 -7
  3. data/lib/driq/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd9bfe313c82a020e678e20a9ca2980e3e7127328a925bc22bf85ce0c6e34c9f
4
- data.tar.gz: d28b5801801938d574a35800cad49f37e43c57b716a2b7104a12002684662fba
3
+ metadata.gz: 71c4465149e2b87307aafcc9adaf476fb9c800f180eded2d6563e6e9aeafbb87
4
+ data.tar.gz: 6d39cd85e7ffbb9d58c078438193b84787c8ebe425da9698600d67452933d1a8
5
5
  SHA512:
6
- metadata.gz: 382b94d20063c64f2ee9743c5b6d5417b45cd410fdd18e5e58fda4a82863ee908a5c45e578d0f67cf842f3ac9d85160b32e3fc1bde59a6ab167d11dc8a02035a
7
- data.tar.gz: e5a74e976a9aa30882f2d2a0fca3ec2ec93e82f97d5365f8826004959bc9dc815d98baf0ef4483dc88c525b9b86170d6c28ec20101b9fa4046d4e7def971b83d
6
+ metadata.gz: c9e563e99a35e7c62a3c6c23d4382f98f1f36760d627ff71fc0ea9ccb657ae9f1405e9845c5660b89449394b40011aba2d3b2c9111a28e2ed169ff9db2a6121c
7
+ data.tar.gz: 9f2ee41bcd00d77a0ec5d637bdc6a9dc5a203265c91c7433bc89563e06fd81dce7941095afa9a1abe3c53aaa9bf3ab37f05dde5ffec090d2552b2082b2a937da
@@ -26,8 +26,8 @@ class Driq
26
26
  end
27
27
  alias push write
28
28
 
29
- def read(key)
30
- readpartial(key, 1).first
29
+ def read(key, timeout=nil)
30
+ readpartial(key, 1, timeout).first
31
31
  end
32
32
 
33
33
  def last(if_empty=nil)
@@ -40,18 +40,18 @@ class Driq
40
40
  @last
41
41
  end
42
42
 
43
- def readpartial(key, size)
43
+ def readpartial(key, size, timeout=nil)
44
44
  synchronize do
45
45
  key = @last unless key
46
46
  raise ClosedQueueError if @closed
47
47
  idx = seek(key)
48
48
  if idx.nil?
49
49
  key = @last
50
- @event.wait
50
+ @event.wait(timeout)
51
51
  idx = seek(key)
52
52
  end
53
53
  raise ClosedQueueError if @closed
54
- @list.slice(idx, size)
54
+ idx ? @list.slice(idx, size) : []
55
55
  end
56
56
  end
57
57
 
@@ -100,10 +100,12 @@ end
100
100
 
101
101
  class Driq
102
102
  class EventSource
103
- def initialize(driq = nil)
103
+ def initialize(driq = nil, timeout = 60)
104
104
  @driq = driq || Driq.new
105
+ @timeout = timeout
105
106
  end
106
107
  attr_reader :driq
108
+ attr_accessor :timeout
107
109
 
108
110
  def write(value)
109
111
  @driq.write([nil, value])
@@ -137,7 +139,7 @@ class Driq
137
139
  end
138
140
 
139
141
  def read(cursor)
140
- cursor, value = @driq.read(cursor)
142
+ cursor, value = @driq.read(cursor, @timeout) || [cursor, [:ping, 'keep']]
141
143
  return cursor, build_packet(cursor, value[0], value[1])
142
144
  end
143
145
  end
@@ -1,3 +1,3 @@
1
1
  class Driq
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: driq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masatoshi SEKI
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit