deimos-ruby 2.0.0.pre.beta6 → 2.0.0.pre.beta7

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: 6c6c076148afa37dbbabda28cab52fd660a17913d303242559b2e6b9111b6b64
4
- data.tar.gz: a2e21a56c1bf8ac9c46741e2a62fae7110dad6733f38ef958d81c9ef679b1fef
3
+ metadata.gz: 4aeb59ae53a1c0b617581b477fd035fc76182fb2662e2c1655b4f9814747a26a
4
+ data.tar.gz: 58c80ee0fde7651ac46c8d99a8652598500c04757ce5364aa0ddda7b4ca02f9c
5
5
  SHA512:
6
- metadata.gz: 1dcb4979f69587dcd428b71cb4617fcac7692a4c5b9ca5f8097481c648c1c6b9ec4cd350727a6d3f7f6b4cd5c30fe4f422a67c1b0461b5c606b3112ec22a4ded
7
- data.tar.gz: b00fd19e08d89044bb069f8a70ba082fe7eafa9a23c08181fca2e297f21fa2856bb25e89f04b9084650a4b6f853d3c471ce2fb5aa6767db286b6ae663ae0092a
6
+ metadata.gz: 7b366555ec5a9fd5f11a54e12c6db102c14a7675da3bfb6afc07b57729bfe21adf643505fb1290c28dcf072e451926d6e2c8cd55ae3ee58713630809d13c01ce
7
+ data.tar.gz: 48104ebcafa8ac7b0b911928e9aa65ad897747acf8f51279d6ae4bc4b66f26dba471c7329207bf723ec738eea645203cc8546d8f26fccfd204b652ee8eb70cf1
@@ -36,6 +36,8 @@ module Deimos
36
36
  comparison == self.as_json
37
37
  end
38
38
 
39
+ alias_method :eql?, :==
40
+
39
41
  # @return [String]
40
42
  def inspect
41
43
  klass = self.class
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deimos
4
- VERSION = '2.0.0-beta6'
4
+ VERSION = '2.0.0-beta7'
5
5
  end
@@ -100,4 +100,50 @@ RSpec.describe Deimos::ActiveRecordConsume::BatchConsumption do
100
100
  end
101
101
  end
102
102
  end
103
+
104
+ describe '#compact_messages' do
105
+ it 'for scalars' do
106
+ message_1 = Deimos::Message.new({ v: "first" }, key: 1234)
107
+ message_2 = Deimos::Message.new({ v: "last" }, key: 1234)
108
+ result = batch_consumer.send(:compact_messages, [message_1, message_2])
109
+ expect(result.size).to eq(1)
110
+ expect(result.first.equal?(message_2)).to eq(true)
111
+ end
112
+
113
+ it 'for hashes' do
114
+ message_1 = Deimos::Message.new({ v: "first" }, key: { a: 1, b:2.0, c: "c"})
115
+ message_2 = Deimos::Message.new({ v: "last" }, key: { a: 1, b:2.0, c: "c"})
116
+ result = batch_consumer.send(:compact_messages, [message_1, message_2])
117
+ expect(result.size).to eq(1)
118
+ expect(result.first.equal?(message_2)).to eq(true)
119
+ end
120
+
121
+ it 'for schema classes' do
122
+ module Schemas
123
+ class Key < Deimos::SchemaClass::Record
124
+ attr_accessor :some_name
125
+
126
+ # @override
127
+ def initialize(some_name: "")
128
+ super
129
+ self.some_name = some_name
130
+ end
131
+
132
+ # @override
133
+ def as_json(_opts={})
134
+ {
135
+ 'some_name' => @some_name
136
+ }
137
+ end
138
+ end
139
+ end
140
+
141
+ message_1 = Deimos::Message.new({ v: "first" }, key: Schemas::Key.new(some_name: "2"))
142
+ message_2 = Deimos::Message.new({ v: "last" }, key: Schemas::Key.new(some_name: "2"))
143
+
144
+ result = batch_consumer.send(:compact_messages, [message_1, message_2])
145
+ expect(result.size).to eq(1)
146
+ expect(result.first.equal?(message_2)).to eq(true) # The object is same as the latest one in the batch
147
+ end
148
+ end
103
149
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.beta6
4
+ version: 2.0.0.pre.beta7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-24 00:00:00.000000000 Z
11
+ date: 2025-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf