event_stream_parser 1.0.0 → 1.0.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/README.md +1 -1
- data/lib/event_stream_parser/version.rb +1 -1
- data/lib/event_stream_parser.rb +11 -0
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 06cff98dad06559a4b803723dd45890af9e995a20d9075482028dddb415d5618
|
|
4
|
+
data.tar.gz: 251f89c451dbee9fb3914afa46dedc86697955bf02b342016baa5654f26563c7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f179630a15295755bab456c47c81a0c013305d3f6a21b42f4ffa3e2208203f29958643d2fc7c21c5cc7be09ed8ec36494a674047f4ddd3deaa7f6d58a0444db4
|
|
7
|
+
data.tar.gz: 8d8b918bd1eafc6c06dcbfc788b1610c89fffa2358d2eaf3b6b84767fbe1632fa4e970f584dedbc48352e53b10cb5300a08c2d9797474d7e197d79b9ee513a0d
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# event_stream_parser
|
|
2
2
|
|
|
3
|
-
[](https://rubygems.org/gems/event_stream_parser)
|
|
3
|
+
[](https://rubygems.org/gems/event_stream_parser)
|
|
4
4
|
[](https://github.com/Shopify/event_stream_parser/actions/workflows/ci.yml)
|
|
5
5
|
|
|
6
6
|
A lightweight, fully spec-compliant parser for the
|
data/lib/event_stream_parser.rb
CHANGED
|
@@ -24,6 +24,7 @@ module EventStreamParser
|
|
|
24
24
|
|
|
25
25
|
@reconnection_time = nil
|
|
26
26
|
@buffer = +''
|
|
27
|
+
@buffer_scanned = true
|
|
27
28
|
@last_delimiter = nil
|
|
28
29
|
end
|
|
29
30
|
|
|
@@ -40,11 +41,21 @@ module EventStreamParser
|
|
|
40
41
|
#
|
|
41
42
|
@buffer.delete_prefix!("\n") if @last_delimiter == "\r"
|
|
42
43
|
|
|
44
|
+
# Only skip the search after the previous call drained complete lines.
|
|
45
|
+
buffer_scanned = @buffer_scanned
|
|
46
|
+
@buffer_scanned = false
|
|
47
|
+
if buffer_scanned && !/[\r\n]/.match?(chunk.dup.force_encoding(@buffer.encoding))
|
|
48
|
+
@buffer_scanned = true
|
|
49
|
+
return
|
|
50
|
+
end
|
|
51
|
+
|
|
43
52
|
while (line = @buffer.slice!(/.*?(?<delim>\r\n|\r|\n)/))
|
|
44
53
|
line.chomp!
|
|
45
54
|
@last_delimiter = $~[:delim]
|
|
46
55
|
process_line(line, &proc)
|
|
47
56
|
end
|
|
57
|
+
@buffer_scanned = true
|
|
58
|
+
nil
|
|
48
59
|
##
|
|
49
60
|
# Once the end of the file is reached, any pending data must be discarded.
|
|
50
61
|
# (If the file ends in the middle of an event, before the final empty line,
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: event_stream_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ates Goral
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-11-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description:
|
|
13
|
+
description:
|
|
14
14
|
email:
|
|
15
15
|
- ates.goral@shopify.com
|
|
16
16
|
executables: []
|
|
@@ -31,7 +31,7 @@ metadata:
|
|
|
31
31
|
source_code_uri: https://github.com/Shopify/event_stream_parser
|
|
32
32
|
allowed_push_host: https://rubygems.org
|
|
33
33
|
rubygems_mfa_required: 'true'
|
|
34
|
-
post_install_message:
|
|
34
|
+
post_install_message:
|
|
35
35
|
rdoc_options: []
|
|
36
36
|
require_paths:
|
|
37
37
|
- lib
|
|
@@ -46,8 +46,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: 1.3.7
|
|
48
48
|
requirements: []
|
|
49
|
-
rubygems_version: 3.
|
|
50
|
-
signing_key:
|
|
49
|
+
rubygems_version: 3.5.22
|
|
50
|
+
signing_key:
|
|
51
51
|
specification_version: 4
|
|
52
52
|
summary: A spec-compliant event stream parser
|
|
53
53
|
test_files: []
|