evt-event_source-event_store-http 0.4.1.0 → 0.5.0.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/lib/event_source/event_store/http/get.rb +5 -54
- data/lib/event_source/event_store/http/read.rb +2 -25
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e234d3e5c4a4ac1c7be3dc92ca3db216d9d7af01
|
4
|
+
data.tar.gz: ae71e953b37fe95220da7e7e751e1c93c58030dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f6bebd66fcff3a2108ff13278fe0c6677c9ecc0c02a2cb886adbd90aff61393eb9990b264276b7395cabf35f9707c34b86ceea54c1a426aae1b3c0cb88446a3
|
7
|
+
data.tar.gz: e9a3bc9d3133769d90163037a737595303f1a49363277cb04ac4833999e6895a02d94d4fdebeb8f7aa7e9599f74dd7b8878eaf689509c1a67265754f3a174287
|
@@ -6,17 +6,13 @@ module EventSource
|
|
6
6
|
|
7
7
|
configure :get
|
8
8
|
|
9
|
-
initializer :batch_size,
|
10
|
-
|
11
|
-
def precedence
|
12
|
-
@precedence ||= Defaults.precedence
|
13
|
-
end
|
9
|
+
initializer :batch_size, a(:long_poll_duration)
|
14
10
|
|
15
11
|
dependency :read_stream, ::EventStore::HTTP::ReadStream
|
16
12
|
dependency :session, Session
|
17
13
|
|
18
|
-
def self.build(batch_size: nil,
|
19
|
-
instance = new batch_size,
|
14
|
+
def self.build(batch_size: nil, long_poll_duration: nil, session: nil)
|
15
|
+
instance = new batch_size, long_poll_duration
|
20
16
|
|
21
17
|
session = Session.configure instance, session: session
|
22
18
|
::EventStore::HTTP::ReadStream.configure instance, session: session
|
@@ -42,67 +38,22 @@ module EventSource
|
|
42
38
|
def call(stream_name, position: nil)
|
43
39
|
stream_name = StreamName.canonize stream_name
|
44
40
|
|
45
|
-
logger.trace { "Reading stream (StreamName: #{stream_name}, Position: #{position || '(start)'},
|
46
|
-
|
47
|
-
if precedence == :desc
|
48
|
-
position = desc_position stream_name, position
|
49
|
-
|
50
|
-
if position < 0
|
51
|
-
logger.debug { "Reading backward across start of stream (StreamName: #{stream_name}, Position: #{position || '(start)'}, Direction: #{direction}, BatchSize: #{batch_size}, Events: 0)" }
|
52
|
-
return []
|
53
|
-
end
|
54
|
-
end
|
41
|
+
logger.trace { "Reading stream (StreamName: #{stream_name}, Position: #{position || '(start)'}, BatchSize: #{batch_size})" }
|
55
42
|
|
56
43
|
begin
|
57
44
|
events = read_stream.(
|
58
45
|
stream_name,
|
59
46
|
position: position,
|
60
|
-
direction: direction,
|
61
47
|
batch_size: batch_size
|
62
48
|
)
|
63
49
|
rescue ::EventStore::HTTP::ReadStream::StreamNotFoundError
|
64
50
|
events = []
|
65
51
|
end
|
66
52
|
|
67
|
-
|
68
|
-
|
69
|
-
logger.debug { "Done reading stream (StreamName: #{stream_name}, Position: #{position || '(start)'}, Direction: #{direction}, BatchSize: #{batch_size}, Events: #{events.count})" }
|
53
|
+
logger.debug { "Done reading stream (StreamName: #{stream_name}, Position: #{position || '(start)'}, BatchSize: #{batch_size}, Events: #{events.count})" }
|
70
54
|
|
71
55
|
events
|
72
56
|
end
|
73
|
-
|
74
|
-
def desc_position(stream_name, position)
|
75
|
-
begin
|
76
|
-
head_event, * = read_stream.(
|
77
|
-
stream_name,
|
78
|
-
position: :head,
|
79
|
-
direction: :backward,
|
80
|
-
batch_size: 1
|
81
|
-
)
|
82
|
-
rescue ::EventStore::HTTP::ReadStream::StreamNotFoundError
|
83
|
-
return -1
|
84
|
-
end
|
85
|
-
|
86
|
-
if position.nil?
|
87
|
-
head_event.position
|
88
|
-
else
|
89
|
-
head_event.position - position
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
def direction
|
94
|
-
if precedence == :asc
|
95
|
-
:forward
|
96
|
-
else
|
97
|
-
:backward
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
module Defaults
|
102
|
-
def self.precedence
|
103
|
-
:asc
|
104
|
-
end
|
105
|
-
end
|
106
57
|
end
|
107
58
|
end
|
108
59
|
end
|
@@ -4,31 +4,8 @@ module EventSource
|
|
4
4
|
class Read
|
5
5
|
include EventSource::Read
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
instance.configure_long_poll
|
10
|
-
instance
|
11
|
-
end
|
12
|
-
|
13
|
-
def configure(batch_size: nil, precedence: nil, session: nil)
|
14
|
-
Get.configure(
|
15
|
-
self,
|
16
|
-
batch_size: batch_size,
|
17
|
-
precedence: precedence,
|
18
|
-
session: session
|
19
|
-
)
|
20
|
-
end
|
21
|
-
|
22
|
-
def configure_long_poll
|
23
|
-
cycle = iterator.cycle
|
24
|
-
|
25
|
-
return if cycle.instance_of? Cycle::None
|
26
|
-
|
27
|
-
maximum_milliseconds = cycle.maximum_milliseconds
|
28
|
-
|
29
|
-
long_poll_duration = Rational(maximum_milliseconds, 1000).ceil
|
30
|
-
|
31
|
-
get.read_stream.enable_long_poll long_poll_duration
|
7
|
+
def configure(batch_size: nil, session: nil)
|
8
|
+
Get.configure self, batch_size: batch_size, session: session
|
32
9
|
end
|
33
10
|
end
|
34
11
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-event_source-event_store-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-event_source
|