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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6c523a863200d11f4277cd2def00738e53d40adcae96a8bf5e0dc8e4e734457
4
- data.tar.gz: 684c33aaf90439ce864e2b9c063f7ad487866b7749e62e5edb3f0bcbb20b777b
3
+ metadata.gz: 06cff98dad06559a4b803723dd45890af9e995a20d9075482028dddb415d5618
4
+ data.tar.gz: 251f89c451dbee9fb3914afa46dedc86697955bf02b342016baa5654f26563c7
5
5
  SHA512:
6
- metadata.gz: a4527ea1befd90840ca9640b19f37f1c0232aae9ce9eab2a68612e6ff2db1d3842fdf0041bb6f6e2778950ffb86c3bd0c428d5867456e6aeb32ba01def56a154
7
- data.tar.gz: 4b9a408e6f8eb325a52d35756af38087dcac36cf82b43ea06bd1af6f4287c45a9125d0e1d894382c2513e57e3c4239071aa7f915a7fbe1a6c9bd74dc735e0939
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
- [![Gem (including prereleases)](https://img.shields.io/gem/v/event_stream_parser)](https://rubygems.org/gems/event_stream_parser)
3
+ [![Gem (including prereleases)](https://img.shields.io/gem/v/event_stream_parser?1.0.0)](https://rubygems.org/gems/event_stream_parser)
4
4
  [![CI](https://github.com/Shopify/event_stream_parser/actions/workflows/ci.yml/badge.svg)](https://github.com/Shopify/event_stream_parser/actions/workflows/ci.yml)
5
5
 
6
6
  A lightweight, fully spec-compliant parser for the
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EventStreamParser
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
@@ -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.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: 2023-11-13 00:00:00.000000000 Z
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.4.21
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: []