active_record_streams 0.1.1 → 0.1.2
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 +5 -5
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +2 -2
- data/lib/active_record_streams/publishers/http_stream.rb +12 -4
- data/lib/active_record_streams/publishers/http_stream_spec.rb +14 -1
- data/lib/active_record_streams/publishers/kinesis_stream.rb +5 -9
- data/lib/active_record_streams/publishers/sns_stream.rb +3 -3
- data/lib/active_record_streams/version.rb +1 -1
- data/lib/active_record_streams/version_spec.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 403894aa0aa3a80a42602348ec240e4b674e34d9cc0ff9ac911744e0d5aec7c7
|
4
|
+
data.tar.gz: 00bf4bcd8d65cda87cdd43cf2fe7d26673fe62589d154cf52a54de882ca1f61b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac59072c96a62e80f9818a7cb4bfbb696ea26063686d668fba209bc9315165e04fbd83e36e919c2ff4899d2d2c9030b4e5cee04cbc1cf0116423eedbe643dd89
|
7
|
+
data.tar.gz: 9a68fa932233a71815b77297f9be0d30466b66fd1199e3ea8be9ff84081fbab084c83ef2cfb968f71fd15730d77be774b67a281acbdfa47f59dac400ab98062e
|
data/CHANGELOG.md
CHANGED
@@ -11,3 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
11
11
|
- Global hooks for ActiveRecord 4.2.10.
|
12
12
|
- Overrides to ActiveRecord::Base, ActiveRecord::Relation, ActiveRecord::Persistence to serve callbacks.
|
13
13
|
- SNS, Kinesis and HTTP stream types.
|
14
|
+
|
15
|
+
## [0.1.1] - 2019-04-26
|
16
|
+
### Added
|
17
|
+
- Error handlers for streams
|
18
|
+
- Documentation for error handlers
|
19
|
+
- Tests for error handlers
|
20
|
+
- New method to build Message from json
|
21
|
+
|
22
|
+
## [0.1.2] - 2019-05-02
|
23
|
+
### Added
|
24
|
+
- HTTPS targets support
|
data/Gemfile.lock
CHANGED
@@ -37,10 +37,10 @@ module ActiveRecordStreams
|
|
37
37
|
request.body = message.json
|
38
38
|
response = http.request(request)
|
39
39
|
assert_response_code(response)
|
40
|
-
rescue StandardError =>
|
41
|
-
raise
|
40
|
+
rescue StandardError => e
|
41
|
+
raise e unless @error_handler.is_a?(Proc)
|
42
42
|
|
43
|
-
@error_handler.call(self, table_name, message,
|
43
|
+
@error_handler.call(self, table_name, message, e)
|
44
44
|
end
|
45
45
|
|
46
46
|
private
|
@@ -58,7 +58,15 @@ module ActiveRecordStreams
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def http
|
61
|
-
@http ||=
|
61
|
+
@http ||= begin
|
62
|
+
http_client = Net::HTTP.new(uri.host, uri.port)
|
63
|
+
http_client.use_ssl = true if https?
|
64
|
+
http_client
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def https?
|
69
|
+
uri.scheme == 'https'
|
62
70
|
end
|
63
71
|
|
64
72
|
def uri
|
@@ -12,7 +12,7 @@ RSpec.describe ActiveRecordStreams::Publishers::HttpStream do
|
|
12
12
|
|
13
13
|
let(:request) { double('body=': nil) }
|
14
14
|
let(:response) { double(code: 200) }
|
15
|
-
let(:http_client) { double('body=': nil, request: response) }
|
15
|
+
let(:http_client) { double('body=': nil, 'use_ssl=': nil, request: response) }
|
16
16
|
let(:message) { double(json: '{}') }
|
17
17
|
|
18
18
|
subject do
|
@@ -88,5 +88,18 @@ RSpec.describe ActiveRecordStreams::Publishers::HttpStream do
|
|
88
88
|
subject.publish(actual_table_name, message)
|
89
89
|
end
|
90
90
|
end
|
91
|
+
|
92
|
+
context 'https target' do
|
93
|
+
let(:url) { 'https://hello.world' }
|
94
|
+
|
95
|
+
it 'sends event to an https target' do
|
96
|
+
expect(http_client).to receive(:use_ssl=).with(true)
|
97
|
+
|
98
|
+
subject.publish(actual_table_name, message)
|
99
|
+
|
100
|
+
expect(request).to have_received(:body=).with(message.json)
|
101
|
+
expect(http_client).to have_received(:request).with(request)
|
102
|
+
end
|
103
|
+
end
|
91
104
|
end
|
92
105
|
end
|
@@ -37,16 +37,12 @@ module ActiveRecordStreams
|
|
37
37
|
return unless (any_table? && allowed_table?(table_name)) ||
|
38
38
|
table_name == @table_name
|
39
39
|
|
40
|
-
client.publish(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
@overrides
|
45
|
-
)
|
46
|
-
rescue StandardError => error
|
47
|
-
raise error unless @error_handler.is_a?(Proc)
|
40
|
+
client.publish(@stream_name, partition_key(table_name),
|
41
|
+
message.json, @overrides)
|
42
|
+
rescue StandardError => e
|
43
|
+
raise e unless @error_handler.is_a?(Proc)
|
48
44
|
|
49
|
-
@error_handler.call(self, table_name, message,
|
45
|
+
@error_handler.call(self, table_name, message, e)
|
50
46
|
end
|
51
47
|
|
52
48
|
private
|
@@ -35,10 +35,10 @@ module ActiveRecordStreams
|
|
35
35
|
table_name == @table_name
|
36
36
|
|
37
37
|
client.publish(@topic_arn, message.json, @overrides)
|
38
|
-
rescue StandardError =>
|
39
|
-
raise
|
38
|
+
rescue StandardError => e
|
39
|
+
raise e unless @error_handler.is_a?(Proc)
|
40
40
|
|
41
|
-
@error_handler.call(self, table_name, message,
|
41
|
+
@error_handler.call(self, table_name, message, e)
|
42
42
|
end
|
43
43
|
|
44
44
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_record_streams
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Advanon Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -191,8 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '0'
|
193
193
|
requirements: []
|
194
|
-
|
195
|
-
rubygems_version: 2.6.14
|
194
|
+
rubygems_version: 3.0.3
|
196
195
|
signing_key:
|
197
196
|
specification_version: 4
|
198
197
|
summary: Stream ActiveRecord events via HTTP, AWS SNS or Kinesis streams
|