Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
CHANGES

Next release (TBD)
8.3.1 (Mar 22, 2024)
- Fixed ruby process hanging due to failed thread.join command, when calling destroy and a http request still active.
- Fixed streaming notification parser. Issue ref: https://github.com/splitio/ruby-client/issues/511

8.3.0 (Dec 11, 2023)
- Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
Expand Down
3 changes: 2 additions & 1 deletion lib/splitclient-rb/sse/event_source/event_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ def first_event(raw_data)
private

def parse_event_data(data, type)
event_data = JSON.parse(data.sub('data: ', ''))
data_value = data.sub('data:', '')
event_data = JSON.parse(data_value.strip)
client_id = event_data['clientId']&.strip
channel = event_data['channel']&.strip
parsed_data = JSON.parse(event_data['data']) unless type == 'error'
Expand Down
2 changes: 1 addition & 1 deletion lib/splitclient-rb/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module SplitIoClient
VERSION = '8.3.0'
VERSION = '8.3.1'
end
12 changes: 10 additions & 2 deletions spec/integrations/push_client_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,16 @@

client = factory.client
client.block_until_ready
sleep(2)
expect(client.get_treatment('admin', 'bilal_split')).to eq('off')

treatment = 'control'
for i in 1..5 do
p i
sleep(1)
treatment = client.get_treatment('admin', 'bilal_split')
break if treatment != 'control'
end

expect(treatment).to eq('off')
end
end

Expand Down
11 changes: 11 additions & 0 deletions spec/sse/event_source/event_parser_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
let(:log) { StringIO.new }
let(:config) { SplitIoClient::SplitConfig.new(logger: Logger.new(log)) }

let(:event_split_update_ws) { "fb\r\nid:123\nevent:message\ndata:{\"id\":\"1\",\"clientId\":\"emptyClientId\",\"connectionId\":\"1\",\"timestamp\":1582045421733,\"channel\":\"channel-test\",\"data\":\"{\\\"type\\\" : \\\"SPLIT_UPDATE\\\",\\\"changeNumber\\\": 5564531221}\",\"name\":\"asdasd\"}\n\n\r\n" }
let(:event_split_update) { "fb\r\nid: 123\nevent: message\ndata: {\"id\":\"1\",\"clientId\":\"emptyClientId\",\"connectionId\":\"1\",\"timestamp\":1582045421733,\"channel\":\"channel-test\",\"data\":\"{\\\"type\\\" : \\\"SPLIT_UPDATE\\\",\\\"changeNumber\\\": 5564531221}\",\"name\":\"asdasd\"}\n\n\r\n" }
let(:event_split_kill) { "fb\r\nid: 123\nevent: message\ndata: {\"id\":\"1\",\"clientId\":\"emptyClientId\",\"connectionId\":\"1\",\"timestamp\":1582045421733,\"channel\":\"channel-test\",\"data\":\"{\\\"type\\\" : \\\"SPLIT_KILL\\\",\\\"changeNumber\\\": 5564531221, \\\"defaultTreatment\\\" : \\\"off\\\", \\\"splitName\\\" : \\\"split-test\\\"}\",\"name\":\"asdasd\"}\n\n\r\n" }
let(:event_segment_update) { "fb\r\nid: 123\nevent: message\ndata: {\"id\":\"1\",\"clientId\":\"emptyClientId\",\"connectionId\":\"1\",\"timestamp\":1582045421733,\"channel\":\"channel-test\",\"data\":\"{\\\"type\\\" : \\\"SEGMENT_UPDATE\\\",\\\"changeNumber\\\": 5564531221, \\\"segmentName\\\" : \\\"segment-test\\\"}\",\"name\":\"asdasd\"}\n\n\r\n" }
Expand All @@ -25,6 +26,16 @@
expect(event.channel).to eq('channel-test')
end

it 'split update event - fixing event parser' do
parser = subject.new(config)

event = parser.parse(event_split_update_ws)[0]
expect(event.event_type).to eq('message')
expect(event.data['type']).to eq('SPLIT_UPDATE')
expect(event.data['changeNumber']).to eq(5_564_531_221)
expect(event.channel).to eq('channel-test')
end

it 'split kill event' do
parser = subject.new(config)

Expand Down