driq 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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