firehose-rb 0.2.0 → 0.2.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: 6fa8dc1d77ce7ec26e1db82f13a26094970b1294388bf2e0c0b4c7aa266f9c5d
4
- data.tar.gz: b2f8784af1ad95c67cb5467607ba546ad6bd183a243367b124576865705eb398
3
+ metadata.gz: 70b03f0520cbbe98fab7114177caea7c05a99eadcd37849e49787eb9e829918d
4
+ data.tar.gz: 50a997d07b16681ce311e00698234023c4c735a12cf2865234f19866249d3c7e
5
5
  SHA512:
6
- metadata.gz: 58c1f5933095b7f2ab7a82c3559643241398aa3524e477340f0a62199b9a4478229fccdc66d928570c59e4f054082adb25775bbbd313fc0725dccafdc8996304
7
- data.tar.gz: 7bf960e0a49fb20b142126bafcbc538565e5e1fa91bc170e38994835bbd0d550c07c35d7b38f8b106452c0b243b31742ac1021aaedabf8941dbba6d78c6cd8c7
6
+ metadata.gz: 8eda7feb26be84a57522a6ed4cf5c923318e80df994bb22004c9fd95031c387dc0505a5684ca78ac0bcfb0b7fae7370b3371da610480ee6796a841c7a1c45810
7
+ data.tar.gz: c3402259567b4c90cfc886a0d9c4f4dd6cc55ccf2c7a1220470309f36993fda5e62e1b5de0fe1ad4545bb632508502edb0ebf5cd55176e640b3d49369847220c
@@ -3,12 +3,12 @@
3
3
  require "json"
4
4
 
5
5
  module Firehose
6
- Event = Data.define(:id, :document, :matched_rule, :matched_at) do
7
- def initialize(id:, document:, matched_rule: nil, matched_at: nil)
6
+ Event = Data.define(:id, :type, :document, :matched_rule, :matched_at) do
7
+ def initialize(id:, type: "message", document:, matched_rule: nil, matched_at: nil)
8
8
  super
9
9
  end
10
10
 
11
- def self.from_sse(data, id: nil)
11
+ def self.from_sse(data, id: nil, type: "message")
12
12
  parsed = JSON.parse(data)
13
13
 
14
14
  doc = Document.from_hash(parsed["document"] || parsed)
@@ -16,6 +16,7 @@ module Firehose
16
16
 
17
17
  new(
18
18
  id: id || parsed["id"],
19
+ type: type,
19
20
  document: doc,
20
21
  matched_rule: parsed["matched_rule"] || parsed["tag"],
21
22
  matched_at: matched_at
@@ -33,6 +33,8 @@ module Firehose
33
33
  begin
34
34
  stream_events(since: since, &block)
35
35
  backoff = INITIAL_BACKOFF
36
+ rescue Firehose::ConnectionError
37
+ raise
36
38
  rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::ETIMEDOUT,
37
39
  Net::OpenTimeout, Net::ReadTimeout, IOError => e
38
40
  break unless @running
@@ -112,12 +114,15 @@ module Firehose
112
114
 
113
115
  def parse_sse_event(raw, &block)
114
116
  id = nil
117
+ type = "message"
115
118
  data_lines = []
116
119
 
117
120
  raw.each_line do |line|
118
121
  line = line.chomp
119
122
  if line.start_with?("id:")
120
123
  id = line.sub("id:", "").strip
124
+ elsif line.start_with?("event:")
125
+ type = line.sub("event:", "").strip
121
126
  elsif line.start_with?("data:")
122
127
  data_lines << line.sub("data:", "").strip
123
128
  end
@@ -126,10 +131,10 @@ module Firehose
126
131
  return if data_lines.empty?
127
132
 
128
133
  data = data_lines.join("\n")
129
- event = Event.from_sse(data, id: id)
134
+ event = Event.from_sse(data, id: id, type: type)
130
135
 
131
136
  @last_event_id = id if id
132
- @on_offset&.call(@last_event_id)
137
+ @on_offset&.call(@last_event_id) if id
133
138
 
134
139
  block.call(event)
135
140
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firehose-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nauman Tariq
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-03-27 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: faraday
@@ -73,6 +74,7 @@ homepage: https://github.com/nauman/firehose-rb
73
74
  licenses:
74
75
  - MIT
75
76
  metadata: {}
77
+ post_install_message:
76
78
  rdoc_options: []
77
79
  require_paths:
78
80
  - lib
@@ -87,7 +89,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
89
  - !ruby/object:Gem::Version
88
90
  version: '0'
89
91
  requirements: []
90
- rubygems_version: 3.6.9
92
+ rubygems_version: 3.0.3.1
93
+ signing_key:
91
94
  specification_version: 4
92
95
  summary: Ruby client for the Firehose real-time web monitoring API
93
96
  test_files: []